以下测试是基于 前人的程序: http://www.tempest-sw.com/benchmark/.
计算PI的程序在这里能找到 源代码. 测试机器的性能配置如下:
16GB RAM
Intel i7-4710HQ CPU @ 2.5GHz
64-bit Windows 10
1TB Samsung SSD
测试的PI程序主要是基于 整数计算. 分别设置到小数点后 1万 和 2万位. 并且测试了 写文件 和 纯计算.
以下为测试的编译器列表:
Delphi 7 Delphi 2007 Delphi XE8 x86 Delphi XE8 x64 Delphi 10 x86 Delphi 10 x64 VS2013 cpp x86 VS2013 cpp x64 VS2013 c x86 VS2013 c x64 MINGW 4.8.1 x86 c MINGW 4.8.1 x86 cpp VS2013 C#.NET 4.5 x86 VS2013 C#.NET 4.5 x64 JAVA8 x86 JAVA8 x64 VS2015 cpp x86 VS2015 cpp x64 VS2015 c x86 VS2015 c x64 VS2015 C#.NET 4.5 x86 VS2015 C#.NET 4.5 x64
测试结果
所有程序都是在 RELEASE下编译的.
计时程序
DELPHI 计时方法是 调用 WIN32 API – GetTickCount
procedure TForm1.Run(const CmdLine: string); var Start, Finish: Cardinal; Dir: string; StartupInfo: TStartupInfo; ProcessInfo: TProcessInformation; begin Start := GetTickCount; FillChar(StartupInfo, SizeOf(StartupInfo), 0); StartupInfo.cb := SizeOf(StartupInfo); Dir := ExtractFileDir(Path.Text); if not CreateProcess(PChar(Path.Text), PChar('"' + Path.Text + '" ' + CmdLine), nil, nil, True, 0, nil, PChar(Dir), StartupInfo, ProcessInfo) then RaiseLastOSError; WaitForSingleObject(ProcessInfo.hProcess, INFINITE); Finish := GetTickCount; Results.Lines.Add(IntToStr(Finish - Start)); end; procedure TForm1.RunBtnClick(Sender: TObject); var I: Integer; begin Screen.Cursor := CrHourglass; try Results.Clear; if CmdLines.GetTextLen = 0 then Run('') else for I := 0 to CmdLines.Lines.Count-1 do Run(CmdLines.Lines[I]); finally Screen.Cursor := crDefault; end; end;
评论
- 现代编译器对整数计算优化都很成熟了
- DELPHI编译器各版本之前性能差别不大 但是文件大小却是越来越大 而且64位要普遍比32位的文件大小大.
- VS2015 的C代码编译器(32 和 64位) 性能最佳
- C代码比C++快
- JAVA 64位甚至比 DELPHI/C++ 原生代码快.
- C#很厉害,提升了十几倍了
- java很多年前就有直通cpu级别的优化了, 就是部分代码,非虚拟机执行,直接汇编转换执行
事先编译好的测试程序 包括计时程序
下载下来 然后各位看官在自己的电脑上跑跑 看看结果是不是类似?
圆周率后 1万位小数点查询
GD Star Rating
loading...
本文一共 360 个汉字, 你数一下对不对.loading...
上一篇: 快通过 PAYPAL ME 捐点给我吧
下一篇: GOOGLE ADSENSE 推出 匹配内容 单元
扫描二维码,分享本文到微信朋友圈