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

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

转载于:https://www.cnblogs.com/William_Fire/archive/2005/08/24/221467.html

偶然发现静态函数与性能一例相关推荐

  1. 偶然发现的一篇相见很晚的文章:如何学好游戏编程

    今天偶然发现一篇介绍如何学好游戏编程的文章,相见恨晚呀,特转载,转帖地址:http://new.qzone.qq.com/79134054/blog/1226580538#!. <如何学好游戏编 ...

  2. windows2008r2补丁_我偶然发现一个严重 0day,影响 Win7 和 Server 2008 R2,微软未发补丁(详情)...

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 法国安全研究员 Clément Labro在更新一款 Windows 安全工具时,偶然发现一个影响 Windows 7 和 Windo ...

  3. 鼠标在用了一段之后偶然发现以给特别慢的速度移动鼠标,会在移动到可点击的选项按钮附近明显的卡住问题。

    鼠标在用了一段之后偶然发现以给特别慢的速度移动鼠标,会在移动到可点击的选项按钮附近明显的卡住问题. 买的罗技的G pro,近期重装了一遍系统偶然发现这个问题,已经严重影响了鼠标的使用,制表制图的时候很 ...

  4. 偶然发现,Javascript中双重否定的写法

    JS 是一种灵活且轻量级的语言,这种特性让我们经常觉得它是一门最简单的语言,也是最难掌握的语言.虽然经常使用,但我仍然偶然发现一些我不知道的隐藏语法或技巧. 在处理错误时,我偶然发现了以下代码. re ...

  5. 驱动开发基础知识 偶然发现的,很全面

     1.三种类型的WDM驱动程序    总线驱动程序(bus driver)    功能驱动程序(function driver)    过滤驱动程序(filter driver) 2.其他分类方法 ...

  6. 张一鸣:“如果是你偶然发现青霉素能消炎,阿里正式启动2021届春季校招

    在这里举个反例:两个我印象比较深刻的年轻人,素质.技术都蛮不错,也都挺有特点.我当时是他们的主管,发现他们在工作中deliver(传递)的感觉始终不好. 他们觉得其他同事做得不如他们,其实不是:他们确 ...

  7. pg_enterprise_views 偶然发现的神仙PG插件!!!

    目录 1. 下载 2. 安装 3. 使用 3.1. pev_active_session && pev_active_session_his 3.2. pev_long_locks & ...

  8. 偶然发现一个学习python的好地方

    大家好,今天推荐一个我的在学习python路上结识的好朋友:才哥. 才哥是枚游戏运营,为了高效的处理游戏运营中的数据分析相关工作,自学python,致力于技术让工作更轻松. 才哥乐于分享,他将自己学习 ...

  9. 偶然发现一个大佬写的 React 脚手架,叫Moderate, 用起来很方便

    发现一个大佬写的 React 脚手架,叫Moderate, 用起来很方便 Moderate,意思为适中的,适度的,用这个作为代号,主要取决于他的本名"中用",其一以贯之的想法就是中 ...

最新文章

  1. Scala程序设计:Java虚拟机多核编程实战(国内第一本Scala图书)
  2. 计算机网络核心知识(上)
  3. 计算机右键管理删除,使用QQ计算机管理器删除右键菜单中的多余项。doc
  4. 真实不装| 阿里巴巴新人上路指北
  5. 第一百五十二期:白话Entity Framework Core数据验证
  6. 渗透测试入门24之渗透测试参考书、课程、工具、认证
  7. 【kafka】kafka Replica无法从leader同步消息
  8. C++学习(三)(C语言部分)之 基本数据类型
  9. CDH中hue使用oozie调度的文件注意事项
  10. c语言代码99乘法表,c语言九九乘法表代码如何写
  11. 分布式数据库中间件 TDDL 学习笔记
  12. 主题词是计算机自动提取,汉语关键词自动转换主题词方法的步骤
  13. latex normal是几号字_Latex 文本详细篇
  14. 全自动加药装置详细介绍
  15. 手机群控软件的运行环境台式机/HUB配置分享
  16. 【福利倒计时】春风十里不如程序猿的专属福利,拿了这份,2018值了~
  17. 操作系统中生产者/消费者问题(一)
  18. 华为光亮计算机有哪些优势,华为亮出5G十大优势:62家运营商拿下41家
  19. 大数据与云计算学习计划 (一) 云计算系统管理 3 Linux系统命令行基础 (概念与实操)
  20. 【开说正事】猿宵节灯谜,你知多少?

热门文章

  1. JavaMelody开源系统性能监控
  2. MaxCompute - ODPS重装上阵 第二弹 - 新的基本数据类型与内建函数
  3. python 导入 包
  4. 前谷歌高管给初入职场新人的14条忠告
  5. 交叉表的简单实现2:使用前端程序实现
  6. linux运维、架构之路-MySQL多实例
  7. [CareerCup] 17.7 English Phrase Describe Integer 英文单词表示数字
  8. Nodejs 环境配置终极解决方案
  9. 解决ubuntu系统安装完后启动项里没有ubuntu的问题
  10. SQL SERVER 取所有表及注释 和 字段属性