Python中文
首页
教程
问答
标签
搜索
登录
注册
C程序比Python子进程快
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有一个用C编写的多线程mergesorting程序,以及一个用0、1、2或4个线程进行基准测试的程序。我还用Python编写了一个程序来执行多个测试并聚合结果。在</p> <p>奇怪的是,当我运行Python时,测试运行的时间总是比直接在shell中运行的时间少一半。在</p> <p>例如,当我用400万个整数单独运行测试程序时(最后两个参数是生成整数的种子和模数):</p> <pre><code>$ ./mergetest 4000000 4194819 140810581084 0 threads: 1.483485s wall; 1.476092s user; 0.004001s sys 1 threads: 1.489206s wall; 1.488093s user; 0.000000s sys 2 threads: 0.854119s wall; 1.608100s user; 0.008000s sys 4 threads: 0.673286s wall; 2.224139s user; 0.024002s sys </code></pre> <p>使用python脚本:</p> ^{pr2}$ <p>无论我排序多少次,或者运行多少次,都会发生这种情况。python程序用subprocess模块调用测试人员,然后解析并聚合输出。你知道为什么会这样吗?Python是否在某种程度上优化了执行?或者,当我直接运行它时,是否有什么我不知道的东西在减慢它?在</p> <p>代码:<a href="https://gist.github.com/2650009" rel="noreferrer">https://gist.github.com/2650009</a></p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>原来我路过系统最大值作为生成随机数的模。C截短64位整数并将其解释为有符号,即2的补码中的-1,因此每个随机数都被这个数修改,变成0。因此,对所有相同的值进行排序所花费的时间似乎是随机数据的一半。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在乒乓球比赛中预测球的轨迹,对于AI球拍预测?
9 回答
如何在乒乓球游戏中阻止球
1 回答
如何在乘法和模中不乘空间?
10 回答
如何在乘法和除以2个不同的数字之间进行交换?
8 回答
如何在也是数据一部分的单个字符上拆分大字符串
4 回答
如何在乾草堆中找到針,有更好的解決方案嗎?
3 回答
如何在事件wxWidgets中传递自定义数据
8 回答
如何在事件中使用lambda i=i?
2 回答
如何在事件中心只接收最近的数据
6 回答
如何在事件发生之前保持云函数运行?
4 回答
如何在事件发生后使页面重定向到同一页面
3 回答
如何在事件回调之间保持python生成器的状态
10 回答
如何在事件处理程序(pythonsocket、sphinx)中保留docstring
2 回答
如何在事件处理程序中更改wxRichTextCtrl的光标位置?
7 回答
如何在事件处理程序中访问外部对象?
3 回答
如何在事件循环中将协程打包为正常函数?
7 回答
如何在事件循环之外运行协同程序?
9 回答
如何在事件循环结束时为并发未来的所有线程调用类方法?
9 回答
如何在事件文件中只保留一份摘要?
10 回答
如何在事件模板中添加事件
4 回答