答复: 答复: [cpp] 请问一下 如何判断一个8位数是否是有效日期
Wu Yongwei
adah at sh163.net
Sun Oct 1 12:20:06 CST 2006
首先声明一下,我认为我的邮件中主要想说明两点:在不影响总体性能的情况下尽
量使用简单的算法(Keep it clean, keep it simple);对老孟的话 8220;速度尽可能
的快,内存尽可能地耗 8221;做一定的澄清。云风的算法会造成程序整体性能下降的可
能性不是我的重点。
纯粹从技术探讨的角度,设想一下以下的情况。日期是通过某种机制批量输入的,
在检查日期之前和之后,有大量的内存密集型操作,使得缓存基本处于被占满的状
态。在这些操作之间,有几个日期检查(假设五个左右),日期是分散的,使得这
1k内存的大部分被载入缓存中。日期检查占掉的CPU时间只占总运行时间的一小部分。
在极端情况下,这多出来的1k可能正好造成缓存失效,使得总体性能降低。
相信真正要构造出可测试的例子要困难些,因为和具体的处理器的缓存算法和缓存
大小有关。
吴咏炜
云风 wrote:
> 就这 1k 内存问题探讨一下,
> 如果只求几次结果,这 1k 内存不会全部进入 cache, 进入 cache 的部分只是查
> 询的部分。如果程序要求是反复做此运算,这 1k 内存将非常有价值。
>
> 我暂时想不出,用这 1k 内存会在什么样的情况下造成负作用。大家可以特别构造
> 一个情况出来举证。
>
> 在 06-9-26,Wu Yongwei<adah at sh163.net> 写道:
>
>> 云风的算法只占1K内存,确实不算多,在目前的测试代码中也不会出现什么缓存不
>> 足的问题。但是,如果程序同时做了很多其它事情,那这1K就有可能造成缓存命中
>> 率降低,并导致程序总体性能的下降。在没有特殊的性能要求(很难想象检查日期
>> 的有效性会成为程序的瓶颈),及没有经过实际代码的测试之前,我不会使用云风
>> 的方案。
More information about the Cpp
mailing list