韩小明@xiammy的专栏

没水的地方挖井,有水的地方修渠

韩小明
韩小明的公告
作者毕业于浙江大学,非常热爱体育运动。现在尤其热爱羽毛球运动。在休息时间非常热爱技术文章写作。
最近垃圾评论泛滥,为了不污染大家的视听,暂时关闭评论,请大家理解。
欢迎转载,但请注意,除非特别声明,本站采用Creative Commons License许可:署名,非商业。

最近评论
yb00k:感觉 这个还是个垃圾东西 适合IE7的变到IE8 就变样了 点都不规范 一点兼容性都不强....强烈支持 firefox
wuhuiran:我嵌入式数据库一直用BerkeleyDB,看到你的博文才知道还有一个SQLite,谢谢。BerkeleyDB不支持SQL
wuhuiran:我嵌入式数据库一直用BerkeleyDB,看到你的博文才知道还有一个SQLite,谢谢。BerkeleyDB不支持SQL
liquankun:瑞星还是不咋地!
白花了几个月的钱
外国的杀软不一定比国产的好!
但是国产的就是比不上国外的!
没办法!技术赶不上人家 还竟搞内讧
不经历大灾难 就不知道什么是团结!



正真的高手是不用杀毒软件的,没什么好不好的,是你自己技术不行而已
wangdei:http://www.bt285.cn BT下载 有300W部BT种子.
http://www.yaonba.com.cn NBA中文网 有200W条NBA直播
http://www.5a520.cn 小说520网 有300W部小说
http://www.bt285.cn/yazhou/ 亚洲BT 有BT亚洲
http://www.bjxlz.cn p……
文章分类
收藏
    相册
    图书
    链接
    宗刚的专栏(RSS)
    快乐学习(RSS)
    陈亮亮的专栏(RSS)
    朋友
    张恂论 OO
    言之有李(RSS)
    赵伟的小家
    存档
    订阅我的博客
    XML聚合  FeedSky

    原创 性能设计中的平衡-提防物极必反收藏

    新一篇: 程序员,你双屏了吗? | 旧一篇: 自动化测试框架:日志的分析

    这是一个非常有意思且非常发人深省的案例。

    公司在做一个组件的时候,一开始就以追求最高效率为目标。因此在制定方案的时候,采用了全部在内存中操作,从而获取最佳效率。但是随着应用中的数据量的提升,效率在空间面前,越来越成为问题。

    这个案例有意思的地方就是,最初是为了追求最好的效率,最后反而没有得到好的效率。但又反过来让我们来思考为什么会出现这种情况呢?

    xiammy想到的的第一个问题在于:空间和时间的权衡。我们都学习过《算法与数据结构》,知道空间和时间往往就是一对矛盾体。在这个问题上,我们一开始就想追求极限的时间上的优势,对空间上的消耗可能带来的影响反而忽略了。这个问题就是,极限地追求效率,非常有可能会增加对空间的占用。

    在一定意义上,时间和空间是可以转化的。爱因斯坦的相对论是这么说的,我们的程序设计也是这样的道理。所以我们在考虑时间的时候,必须考虑好我们是在多大的空间内考虑时间。

    所以xiammy认为考虑效率的时候,同时必须定义空间的相对量。我们不应该抛离空间而单独追求时间。简单的说,追求的是1000条数据的效率,还是1,000,000条数据的效率。xiammy认为,不同的目标,其解决方案会有极大的不同。

    就如前面案例中的所提到的,只是1000条,我完全可以全部装载到内存中,然后再进行优化。但如果是极大的数据量,那么一开始就必须放弃装载到内存中的想法。这里面还有一些微妙的地方,因为在最后的实际应用的压力下,最终的系统必然要解决大数据量的问题,架构也必然要重构。可能你会想到一句话:殊途同归。但是事实一般并不是这样。种下的种子总是会对后来的事情有影响的。况且,在已有的系统上进行重构,还会被现存的代码束缚,让你重构也不得畅快。

    在说回到一个理念问题,我们如果一开始的时候就陷入到极限地追求效率上,反而应了那句话:物极必反。最后的效果反而不是最好。中国人的中庸思想在设计的时候还是有借鉴意义的。 

    发表于 @ 2007年09月30日 07:16:00|评论(loading...)|编辑

    新一篇: 程序员,你双屏了吗? | 旧一篇: 自动化测试框架:日志的分析

    评论

    #jq0123 发表于2007-09-30 09:10:50  IP: 222.71.154.*
    出现新情况就要调整旧策略。
    #jq0123 发表于2007-09-30 09:19:30  IP: 222.71.154.*
    出现新情况就要调整旧策略。
    #9731boy 发表于2007-09-30 14:02:42  IP: 219.143.46.*
    效率是最大化的,至于空间和容量是另一个话题。
    两回事
    #d8111 发表于2007-09-30 14:41:19  IP: 121.0.31.*
    必须有一定的预见性,然后追求一种稳定的性能最大化。

    出现瓶颈需要调整说明业务发展的好嘛
    #seeplus 发表于2007-09-30 17:51:50  IP: 218.18.40.*
    朴素的道理最容易被忽视。
    #zq521520 发表于2007-10-02 00:02:44  IP: 222.244.83.*
    支持
    #liyips 发表于2007-10-03 00:22:25  IP: 125.92.184.*
    有道理,支持
    #fastest286 发表于2007-10-03 10:09:06  IP: 219.137.203.*
    怎么这文章还挂在首页 ?

    其实这个问题有什么好讨论的, 你的需求就不中庸:

    >公司在做一个组件的时候,一开始就以追求最高效率为目标。

    从这句话看, 只有一个目标 (并不是 "效率为最高目标", 而是 "最高效率 为 目标" ), 并且没有指出应该在怎样的限制条件下追求这个目标, 这样, 硬件资源限制或者硬件投资就不是你们设计的时候应该考虑的问题了, 既然如此, 为了保证这个目标, 应该去找 IBM 买几千万美元的机器, 那样内存大概就够了.

    #furniture 发表于2007-11-05 16:41:15  IP: 218.18.56.*
    不错~~
    #kevincheu 发表于2008-03-23 22:23:33  IP: 222.248.138.*
    性能是重要目标,但不应该是首要目标。
    2008-03-26 16:23:54作者回复
    嗯,人处理一个指标的时候,其实没什么差异,往往是多个共存的时候的取舍,才显出能力!
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © 韩小明