当前位置: 首页 > news >正文

百度搜索排名购买网站如何免费做SEO优化

百度搜索排名购买,网站如何免费做SEO优化,网站线上推广方案,怎么做网站首页当然#xff0c;标题有点吸引人#xff0c;但确实如此#xff08;您当然不相信自己没有伪造自己的基准#xff0c;但这是另一回事了#xff09;。 因此#xff0c;上周我正在寻找一个小型且可用的库来评估数学表达式。 我几乎直接偶然发现了这个stackoverflow帖子 。 推… 当然标题有点吸引人但确实如此您当然不相信自己没有伪造自己的基准但这是另一回事了。 因此上周我正在寻找一个小型且可用的库来评估数学表达式。 我几乎直接偶然发现了这个stackoverflow帖子 。 推荐的库 Expr 确实非常快几乎满足了我的所有需求。 但是它没有提供限制变量范围的功能一切都在VM内的一个全局命名空间中。 因此我做到了通常这是我们不应该做的我重新发明了轮子并编写了自己的解析器/评估器。 无论如何这是一个下雨的星期六所以我认为一个小的递归降序解析器一个可以简化并最终计算表达式以及一个用于管理变量的小助手的AST似乎并不重要。 事实并非如此。 我有一个初步的实现并运行得非常快。 一旦进行了一些测试使我确信它可以正确地计算所有内容我想知道与原始文章中提到的其他库相比评估器的运行速度。 由于没有手动优化每个内部循环和所有内容因此我没有太大期望毕竟有些库还是商业库。 因此当我查看结果时我感到非常惊讶。 下面的列表显示了一个微型基准该基准使用相应的库评估相同的表达。 我的库parsii的测量是使用最终版本完成的该版本执行了一些简化操作例如预先评估常量表达式。 但是没有像字节码生成之类的“黑魔法”或该联盟中的任何事情完成。 对于性能测量表达式x为2 7 – 5* 3.14159 * x ^12-10 sin-3.141”其中x从0到1000000。对JIT进行10次加热。然后再执行15次平均执行时间为 PARSII 28.3毫秒 曝光 37.2毫秒 MathEval 7748.5毫秒 JEP 647.0毫秒 MESP 220.8毫秒 JFEP 274.3毫秒 现在我敢肯定这些库中的每一个都有各自的优势因此无法直接进行比较。 看到一个简单的实现可以很好地竞争仍然令人惊奇。 对于那些不太了解编译器构造的人下面简要介绍一下它的工作原理 与任何解析器或编译器一样parsii使用经典的方法是使用分词器 该工具将字符流转换为令牌流。 因此作为字符数组的“ 4”“”“ ”“”“ 3”“”“ *”“ 8”的“ 4 3 * 8”将被转换为 4整数 符号 3整数 *符号 8整数 令牌生成器查看当前字符然后确定要查看的令牌类型然后读取属于该令牌的所有字符。 每个标记都有其类型文本内容并且知道其起始位置行和字符。 网上有很多深入的教程因此这里不再赘述。 您可以看一下源代码但是正如我所说的它只是一个简单的基本实现。 解析器将经典的递归降序解析器转换为AST抽象语法树然后可以对其进行评估。 这是构建解析器的最简单方法之一因为它完全是手工编写的而不是由工具生成的。 这样的解析器基本上包含每个语法规则的方法。 再次有很多此类解析器的教程。 但是大多数示例遗漏的是正确的错误处理。 除了正确快速地解析表达式之外良好的错误处理是良好的解析器的主要方面之一。 这并不难正如您在源代码中所看到的那样解析器在解析表达式时从不抛出异常。 将收集所有错误并且解析器将继续尽可能长的时间。 即使在出现第一个错误之后仍无法正确评估生成的AST但请务必继续操作并且应该一次报告尽可能多的错误这一点很重要。 令牌生成器使用相同的方法因为将格式不正确的令牌例如带有两个小数分隔符的十进制数字报告给同一错误列表。 评估AST是解析表达式的结果这非常容易。 语法树的每个节点都有一个评估方法该方法将由其父节点从根节点开始调用。 此处eval的结果是对表达式求值的结果。 可以在BinaryOperation中找到这种方法的基本示例它表示-*等操作。 为了稍微缩短评估时间执行了三个优化 首先在解析AST之后在根节点上调用一种称为simple的方法该方法会传播到每个子节点。 然后每个节点决定是否可以找到自己的子表达式的更简单表示形式。 例如对于二进制运算 我们检查两个操作数是否都是常数数字。 在这种情况下我们对表达式求值并返回包含操作结果的新常量。 对于所有参数都恒定的函数也可以这样做。 在表达式中使用变量时完成第二次优化。 幼稚的方法是使用映射并在需要时读取或写入变量的值。 尽管这确实可行但是在执行时需要进行很多查找。 因此我们有一个名为Variable的特殊类其中包含变量的名称和数值。 解析表达式时将在范围基本上只是一个映射中查找一次该变量然后从现在开始使用。 由于每个查找返回相同的实例因此在评估表达式时对变量的访问与对字段的读取或写入一样便宜因为我们仅访问Variable的value字段。 第三次也是最后一次优化可能不会经常发挥作用。 但由于易于实现因此还是可以实现。 它基本上被称为“惰性求值”并在调用函数时使用。 函数不会自动求值其所有参数然后自动执行函数调用。 它宁可查看参数也可以凭自己决定要评估的参数而不是要决定的参数。 在if函数中可以找到使用它的示例。 parsii是根据MIT许可获得许可的。 可以在GitHub上找到所有源代码以及预编译的jar。 参考在Andy的软件工程专栏博客中 如何从我们的JCG合作伙伴 Andreas Haufler编写Java中最快的表达式评估器之一 。 翻译自: https://www.javacodegeeks.com/2014/01/how-to-write-one-of-the-fastest-expression-evaluators-in-java.html
http://www.zqtcl.cn/news/809381/

相关文章:

  • 哪些网站做国际贸易比较好徐州泉山建设局网站
  • 平果县免费网站哪家好新媒体营销
  • 网站制作的页面比例企业为什么建立企业网站
  • 网站开发技术的发展专业的seo网站优化公司
  • 十大ppt模板免费下载网站惠州网络营销
  • 网站建设自优化网站首页
  • 网络营销推广方式包括哪几种湘潭网站seo磐石网络
  • 英文WordPress站点切换为中文优化神马网站关键词排名价格
  • 宁波网站建设免费咨询网站建设服务费怎么做会计分录
  • 工作期间员工花钱做的网站wordpress文章内容乱码
  • 艺术设计招聘网站多用户商城网站方案
  • 杭州最大的网站开发有多少专门做兼职的网站
  • 萍乡做网站的公司做偏门网站
  • 成都网站开发价格企业网站管理系统破解版
  • 郑州新闻头条最新消息百度小程序关键词优化
  • 甘肃省通信管理局网站北京软件开发公司排名前十强
  • 用现成的网站模板只套内容就可以有这样的吗忻府网站建设排名
  • 网站设计结果泸州市住房和城乡建设厅官方网站
  • php网站开发入门到精通教程旅游网站项目评估
  • 四川省城乡和住房建设厅网站首页通过邮箱查注册网站
  • 自己的网站怎么编辑如何做响应式的网站
  • 做一个产品网站要多少钱网站宣传与推广的方法
  • 郑州区块链数字钱包网站开发公司局部装修改造找哪家装修公司
  • 网站界面可以做版权吗学生网站建设的总结与评价
  • 用表格做网站10条重大新闻
  • 河南定制网站建设报价盐城网站建设制作工作室
  • 能看各种网站的浏览器wordpress文章名称背景
  • ppt做视频模板下载网站网站建设在哪些方面
  • 能用pinduoduo做网站吗网站建设行业的分析
  • 新乡商城网站建设价格做网站网站会怎么样