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

  思路比较模糊,没有弄清这是为什么。
  考虑到在Button的子类中进行static与在另一个类中进行static,原则上应该是一样的,因为static本身并不是类的定义的一部分,它是在类之外的。
         目前考虑到的可能是:问题出在ImageList的对象本身,它是通过Stream来读取持久后的图像,如果是在类之中的static的ImageList,很有可能,在每次访问时,均进行了再次读写,所以大大地影响了效率。而在以单例的访问中,因为只读写一次后,就放入了内存之中,所以效率会大大提高。

相关文章:

  • 2021-12-29
  • 2022-12-23
  • 2022-12-23
  • 2021-11-14
  • 2022-12-23
  • 2021-11-10
  • 2022-12-23
  • 2022-01-17
猜你喜欢
  • 2021-09-23
  • 2022-12-23
  • 2021-12-19
  • 2021-08-21
  • 2022-02-07
  • 2021-07-13
  • 2021-08-28
相关资源
相似解决方案