0

我有两个清单:

  1. 活动交换 = []
  2. 活跃库存 = []

我的代码本质上是非常连续的,我正在尝试优化它:

for exchange in ActiveExchange:
    for stock in Activestock:
        ...
        ...
        ...

但是,由于 for 循环,它似乎效率很低。我该怎么做才能让它更有效地运行?

4

2 回答 2

0

C/C++ 和 Python 具有行优先数组。如果您正在单步执行数组、列表、向量等,请务必执行以下操作:

for i in range(25):
  for j in range(25):
    A[j][i] *= 1

而不是:

for i in range(25):
  for j in range(25):
    A[i][j] *= 1

这可以在性能上产生 3-6 倍的差异。

于 2013-11-03T03:25:45.393 回答
0
  1. 它只是看起来效率低下,还是您运行它并且花费了太长时间?如果您只是认为它效率低下 - 测试它。并且不要优化不存在的问题。你可以更有效地利用你的时间。

其他任何事情都将视情况而定。喜欢:

  1. 如果您在 ActiveStack 中为 ActiveExchange 中的每个元素搜索一个或两个项目,请将 ActiveStack 设为哈希。
  2. 如果您有 if 语句,并且该语句仅依赖于一个变量,请将其设为外部变量。这样你就可以优化分支预测。这可以由编译器自动完成。
  3. 如果您想操作/读取所有对 - 您无法优化它。
于 2012-12-23T08:00:16.660 回答