五千年(敝帚自珍)

主题:【原创】C++编译器的区别:ViscalC++ .VS. g++ -- 正宗鲁皮皮

共:💬13 🌺14
分页树展主题 · 全看首页 上页
/ 1
下页 末页
  • 家园 【原创】C++编译器的区别:ViscalC++ .VS. g++

    最近翻出来研究生时写的一个项目,用C++写的,用来处理GPS中频数据的,说白了是一个软件GPS接收机,中频采样率是16.34MHz, 总共是40秒的数据,一个数据采样是一个字节, 所以总共有600M左右的数据量,(干过GPS接收机 的都知道为什么需要40秒的数据)。 原来的程序是在Linux下写的,用g++编译,核心的信号处理部分大概有20个源文件,编译後的可执行文件处理所有40秒的数据需要10分钟左右。 最近几个周末忙活了一阵,将核心的信号处理部分给移植到windows下了, 用VisualC++6.0的编译器编译的,因为原来的文件都是用标准的C++写的,所以基本没有做任何改动,只是加了两个文件做DLL的接口, 今天我用这个DLL写了一个应用程序,几乎和Linux下一样的功能,结果好家伙, 处理速度那叫一个慢,处理完全部的数据需要40分钟还多! 这个结果实在让我困惑: 几乎一样的源代码,一样的数据, 为什么Linux下要比windows下要快好几倍?

    我不是编译器的专家,但我猜差别应该在编译器上。河里的大牛多,那位对此有研究的欢迎赐教。

    (追加一点,两个版本都在同一台机器上运行的,windows版本是xp2, linux版本是RedHat的FC6, 运行结果也是一样的(处理的结果,包括解调的电文,通道跟踪环的状态,以及最后的定位信息)。

分页树展主题 · 全看首页 上页
/ 1
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河