程序在虚拟机跑计时

joyeewen 2011-09-01 01:00:17
大家好!
程序在虚拟机里面跑所用的时间,会不会比直接跑多?

例如:我的电脑装了XP,XP上运行虚拟机跑linux。请问算法A,在我的机器里的XP跑和在虚拟机里的linux跑,理论上所用的CPU时间是不是应该是相同的?
...全文
88 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzb56 2011-09-01
  • 打赏
  • 举报
回复
mark!
jackyjkchen 2011-09-01
  • 打赏
  • 举报
回复
Vista之后的机器msvcr71也都自带了,这也是我用msvcr71的理由,运行库依赖太讨厌了

不过现在我不是以前那么喜欢折腾的时候了,现在开发基本上不再运行库上动手脚了
jackyjkchen 2011-09-01
  • 打赏
  • 举报
回复
VC6~VC9的运行库,总体来说速度表现最好的是VC71(VS2003)的,过去用mingw编译程序甚至用VS2008编译程序,只要不涉及MFC等框架,我尽量让程序依赖VC71的运行库,msvcr71我也不记得打过那个补丁后出现的,反正即便是XP,装满补丁的机器都有。

Windows XP自带的那个msvcrt.dll性能也很不错,这个准确来说不是VC6的crt(虽然名字上一样),应该叫做Windows NT Runtime Library,比VC6的新的多,但是它里面函数少,经常链接找不到符号
jackyjkchen 2011-09-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xunxun1982 的回复:]

引用 4 楼 jackyjkchen 的回复:

由于编译器和运行库实现的区别,同样的程序不同的操作系统速度也会不一样,甚至会出现虚拟机速度高于主机的情况(比如主机VC编译器的循环cout输出,虚拟机gcc编译的循环cout输出,gcc的cout比VC的要快一些)

还有这种情况?
gcc是windows下的么
cout不都是导到msvcrt里面嘛
[/Quote]
1.我是说linux下的gcc
2.即便是Windows,我测过msvcrt.dll的cout比msvcr90.dll的快……mingw不是提供了好几个运行库的lib么VC60、VC71、VC80、VC90的都有,VS2010有没有改善没试过
mhwer99 2011-09-01
  • 打赏
  • 举报
回复
不相同,虚拟机计时不准确,建议用数据库的时间
xunxun 2011-09-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jackyjkchen 的回复:]

由于编译器和运行库实现的区别,同样的程序不同的操作系统速度也会不一样,甚至会出现虚拟机速度高于主机的情况(比如主机VC编译器的循环cout输出,虚拟机gcc编译的循环cout输出,gcc的cout比VC的要快一些)
[/Quote]
还有这种情况?
gcc是windows下的么
cout不都是导到msvcrt里面嘛
jackyjkchen 2011-09-01
  • 打赏
  • 举报
回复
由于编译器和运行库实现的区别,同样的程序不同的操作系统速度也会不一样,甚至会出现虚拟机速度高于主机的情况(比如主机VC编译器的循环cout输出,虚拟机gcc编译的循环cout输出,gcc的cout比VC的要快一些)
jackyjkchen 2011-09-01
  • 打赏
  • 举报
回复
VMware、Hyper V这样的利用了x86硬件虚拟化指令的虚拟,开销比较小,虚拟机的CPU效率能达到主机的90%以上,那些ring3级的指令都是不经过翻译,直接跑在真实CPU上的。在这一类虚拟机无法跨架构,比如x86的主机只能虚拟x86。

那些虚拟+模拟结合的,比如Virtual PC,效率低于前者

而某些没有使用虚拟化技术而仅仅是模拟器的,兼容性最好,可以跨架构,但效率极低

另外要注意,虚拟机一般不支持高精度计时,计时不很准确
quwei197874 2011-09-01
  • 打赏
  • 举报
回复
理论上肯定不相同
xunxun 2011-09-01
  • 打赏
  • 举报
回复
和虚拟机的性能/程序的复杂度/电脑的好坏/实际情形有关

64,636

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧