主题:【原创】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, 运行结果也是一样的(处理的结果,包括解调的电文,通道跟踪环的状态,以及最后的定位信息)。
- 相关回复 上下关系8
🙂【原创】C++编译器的区别:ViscalC++ .VS. g++
🙂【文摘】亲密接触VC6.0编译器 3 金口玉言 字57 2007-06-06 16:41:12
🙂不错,好东东, 学习中。 1 正宗鲁皮皮 字66 2007-06-06 22:26:28
🙂网上搜了一下,好象原发网址是 1 请尽量 字330 2007-06-06 21:16:20
🙂你这个全文文摘如果原来的连接还在,能改成“真正”的文摘么? 1 请尽量 字54 2007-06-06 17:34:31
🙂抱歉,是我收藏的 1 金口玉言 字244 2007-06-06 19:25:10
🙂优化开关全开了吗? 2 美人他爹 字277 2007-06-06 15:53:34
🙂终于有人回话了, 先谢过。不过, 1 正宗鲁皮皮 字100 2007-06-06 16:02:18