小电脑“慢”的绝对优势
作为一台电脑,慢的绝对优势是什么?
就好像在问,一个打不着火的打火机,好处是什么?
打火机的我不知道,但是电脑如果慢了,那个优势还真是有的。比如说,如果你玩过《盟军敢死队》,就是那个变态的游戏,让人养成随时存档好习惯的游戏,就知道电脑慢了点是有利于通关的。因为这个游戏做的时候大概没有用定时器来控制人物的速度,而是借助了CPU的速度,所以在奔三以上的CPU玩起来的时候,德军的巡逻队跑起来个个都有争当百米冠军的劲头,你的贝雷帽,往往才露头就被百米冠军们一枪干掉。
但是这个优势,还是有限度,不是越慢越有优势,太慢了游戏都进不去了不是?所以只是慢相对优势,不是绝对优势。我今天发现的,可是一个绝对优势哦!
是这样的,做一个小程序的优化工作,要找出来拖累CPU的地方,然后提高效率,让它跑快一点。这没的说,抓来程序,在关键地方打上计时器,最后看看时间花在哪里就可以了。再用上二分法,很快就定位出来问题所在,然后干掉。是在小电脑上做的。
后来第二天,我却突然发现,计时器打出来的时间都是0!如果真的是0,那还就好了呢,也不用费劲去提高效率了,时间为0多好啊,以后大家开Windows就不用等了。当时我以为,嗯,那是因为我头天提高效率很有成效嘛,实际也确实有点成效,速度提高了接近十倍啦,于是就没有继续。
一直到今天,我才想明白,事实不是如此。实际上是因为计时器只是对一个函数计时,这个函数可能会被调用很多次,然后把每次调用花费的时间累加起来,用了笔记本以后,因为CPU速度很高,所以一个函数的计时非常短,已经小于了计时器能够计算的最小时间,就变成0了,函数可能被调用很多次,也不过是很多个0加在一起,还是0;小电脑就不一样,小电脑够慢,一个函数花费的时间还在计时器的计算最小时间以上很多很多,所以一个函数花费的时间就不是0了,我记得应该是8左右,很多个加在一起,就是一个很可观的数字,当然很容易抓出来需要优化的地方了。
想想,真是寒啊,我还真以为自己把程序优化的提高到计时器也计算不了的地步了呢。
[原文在百度空间已经关闭]
标签集合/Tag clouds
C++
Symbain
轻松汇编
算法
论文学习
资治通鉴
Delphi
编程之美
Poco
MFC
Linux
IFC
知乎
汇编
数据分析
交叉编译
poco
j2me
android
XML
Java
DTD
飞信
零宽断言
诺基亚
联系人
编程
真值表
池西木
正则表达式
多线程
命令行
优化
stream
configure
cmake
VIM
UiAutomator
TDD
Symbian
Sqlite
SourceInsight
Python
MPAndroidChart
Kotlin
Flutter
Dokka
Chatgpt