gpt4 book ai didi

c++ - 方程解析器效率

转载 作者:可可西里 更新时间:2023-11-01 15:23:45 26 4
gpt4 key购买 nike

我花了大约一个月的时间研究原生 C++ 方程式解析器。它可以工作,但速度很慢(比硬编码方程慢 30-100 倍)。我可以更改什么以使其更快?

我阅读了所有我能找到的有关高效代码的内容。概括地说:

  • 解析器将字符串方程表达式转换为“操作”对象列表。
  • 一个操作对象有两个函数指针:一个“getSource”和一个“evaluate”。
  • 为了计算方程式,我所做的只是在操作列表上执行一个 for 循环,依次调用每个函数。

在计算方程式时不会遇到单个 if/switch - 所有条件都由解析器在最初分配函数指针时处理。

  • 我尝试内联函数指针指向的所有函数 - 没有任何改进。
  • 从函数指针切换到仿函数会有帮助吗?
  • 如何删除函数指针框架,创建一整套派生的“操作”类,每个类都有自己的虚拟“getSource”和“evaluate”函数? (但这不只是将函数指针移动到 vtable 中吗?)

我有很多代码。不确定要提炼/发布什么。请求它的某些方面,你就会得到。

最佳答案

在您的帖子中,您没有提到您已经分析了代码。如果我处在你的位置,这是我要做的第一件事。它会让您清楚地知道时间花在了哪里以及您的优化工作应该集中在什么地方。

关于c++ - 方程解析器效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7487502/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com