首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C代码在Windows上比Linux上慢

C代码在Windows上比Linux上慢
EN

Stack Overflow用户
提问于 2013-06-01 23:30:54
回答 1查看 1.1K关注 0票数 1

我正在为Windows和Linux构建一个32位和64位的项目。此项目基于为文本文件加载字符串、处理文本文件并将结果写入SQLite3数据库。

在linux上,它达到每秒近400 k的序列,由GCC编译,没有任何优化。然而,在Windows上,它以每秒100 k的顺序运行,在VS2010上编译,没有进行任何优化。

我尝试在编译器中使用优化,但是没有什么改变。

是这样的吗?Windows上的C代码运行速度慢吗?

编辑:

我想我需要在一些问题上讲得更清楚。我在启用和禁用代码优化的情况下进行了测试。性能没有改变,可能是因为我的程序瓶颈是浪费了从HD读取数据的时间。

这个程序利用了并行计算的优点。有一个队列,其中线程队列处理数据,另一个去队列写入SQLite数据库。这样的话,我不认为会有任何性能损失。

EN

回答 1

Stack Overflow用户

发布于 2013-06-02 14:59:12

是这样的吗?Windows上的C代码运行速度慢吗?

不是的。C没有速度。是C的实现引入了速度。有些实现可以产生快速行为(通常是“生成快速机器代码的编译器”),还有一些实现会为Windows和Linux产生缓慢行为。

这里也不仅仅是Windows和Linux。一些编译器对特定处理器进行优化,并将为任何其他处理器生成缓慢的机器代码。

我尝试在编译器中使用优化,但是没有什么改变。

在没有启用优化的情况下测试速度是没有意义的。然而,这确实表明其他的事情是缓慢的。在Windows中为SQLite3客户端生成库文件的实现可能是生成缓慢代码的实现。首先,我将在启用完全优化的情况下重新构建这个批量(包括SQLite3库)。在此之后,您可以尝试使用分析器来确定差异所在,并使用结果对代码执行智能优化。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16878301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档