擅长:python、mysql、java
<p>一些想法:</p>
<ol>
<li><p>我希望你真正的计算比你贴的要复杂。如果不是,只需计算一次<code>niz2</code>的和,然后将<code>niz1</code>的每个元素乘以该和就可以得到结果向量。</p></li>
<li><p>(假设实际的用例更复杂)Python对于CPU受限的计算速度不快。在处理大量数字时,应该使用<code>numpy</code>之类的库。Numpy的操作是用C实现的,因此比常规的python实现快得多。</p></li>
<li><p>(假设numpy不是一个选项)在Python中,有一个全局解释器锁(GIL),它确保(除了IO任务)一次只有一个线程处于活动状态。这意味着对于计算来说,使用多个线程不会提高计算时间。实现真正并行化的唯一方法是使用多个进程(<code>import multiprocessing</code>),但是在进程之间复制计算结果可能成为瓶颈。</p></li>
</ol>
<p>总之,首先尝试优化单核执行。使用numpy已经可以解决80%的用例。只有在这些优化还不够的情况下才进行并行化,不要期望从中得到实质性的改进。你知道吗</p>
<p>这有用吗?你知道吗</p>