zoukankan      html  css  js  c++  java
  • 偶然发现静态函数与性能一例

      在一个图形化显示的系统中,采用的是重写Button类后,创建实例,通过算法摆放到Panel之中,用于对像显示地图那样显示它们。
      偶然间,发现一个性能上的问题,弄的不是很清楚:
      在重写的Button中,原本有一个ImageList来记录了当前按钮的可以用的图象,原来,因为写代码的人的失误,直接在创建每一个Button实例里,其中也相同的创建了一个ImageList实例。
      在实际的显示中,发现,即使是把该ImageList对象在继承的Button中进行static化,性能也没有丝毫的改观,显示速度仍是非常的慢。
      后来,进行重构时,发现,把所有的ImageList放在一起,易于管理,自然而然的,也用了单例模式。结果,惊讶的发现,性能也大有提升。

      思路比较模糊,没有弄清这是为什么。
      考虑到在Button的子类中进行static与在另一个类中进行static,原则上应该是一样的,因为static本身并不是类的定义的一部分,它是在类之外的。
             目前考虑到的可能是:问题出在ImageList的对象本身,它是通过Stream来读取持久后的图像,如果是在类之中的static的ImageList,很有可能,在每次访问时,均进行了再次读写,所以大大地影响了效率。而在以单例的访问中,因为只读写一次后,就放入了内存之中,所以效率会大大提高。
  • 相关阅读:
    无符号数和有符号数之间赋值和大小比较
    (转)关于Linux核心转储文件 core dump
    mysql忘记root密码解决办法
    CentOS7安装iptables防火墙
    CENTOS7下安装REDIS
    iptables命令(备忘)
    ps 命令详解
    virtualenv
    How to Baskup and Restore a MySQL database
    linux 用户/用户组添加修改删除(ubuntu/centos)
  • 原文地址:https://www.cnblogs.com/William_Fire/p/221467.html
Copyright © 2011-2022 走看看