课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
架构设计是每一位软件开发程序员都需要熟练掌握的一个编程开发能力,下面我们就通过案例分析来了解一下,架构设计的都有哪些常用设计方法。
文件系统优化
有时候系统性能不好,但当你关闭写log的功能,性能一下子提高很多。因为频繁的打开关闭大log文件时I/O开销非常大,同样记录log到数据库也一样。所以,release版尽量减少写log,或干脆移到裸设备上。
频繁打开关闭文件对系统性能下降程度是惊人的,可以通过一些变通办法来减少文件的频繁操作。
例如,原来的缓存持久化实现是保存在XML文件,每次要获得一个配置项,都打开XML文件,通过XPath拿到这个配置项的值,这样效率不高,而且容易把这个XML文件lock住;改进的方法是:通过比较XML文件的修改时间判断是否要再次打开文件,大大提高了效率;另一个可以改进的方法是:启动时读取所有配置到一个静态的HashTable,每次要获得一个配置项都从内存HashTable获取,在后或适当的时候持久化到XML。
代码性能设计
在编程实现上,代码性能设计也很重要,一些昂贵的操作会占用大量的资源和CPU时间。例如,字符串相加没用StringBuilder,频繁创建对象,差劲的排序或递归算法,过多的装箱拆箱,过多的使用反射(Reflection),频繁newHashTable或大的数组,用异常(CatchException)用做正常的逻辑,使用复杂的正则表达式,等等。
语言的选择
另外,语言选择也很重要。比如相对于Java,C#,C++,大多数OLTP系统用C语言效率高的多,因为在所有的高级程序设计语言中,C程序设计语言的运行效率是公认的。再比如我们熟悉的一些框架,框架本身是C#或是Java的,但其核心独立模块是C++封装的,这样可以达到佳的性能。所以对于一些特定的业务需求目标和数据的具体情况,对于核心的模块或算法,可以用特定的语言来实现以获得更好的效率。
应用层
比如应用层和数据库的API,在.Net中就有就有DataReader、DataSet和IList等的选择以及转换等,这个根据具体情况而定;还有就是大家常采用的数据的格式化和压缩,以及采用分页,减少传输的数据量;是否可以把一部分处理逻辑放在客户端呢,减少服务端的工作量。界面端也是有很多针对性能优化的考虑,例如绘图,控件重绘都是非常耗资源的,各控件的数据加载和数据绑定性能也各不相同,尽量采用惰性加载,异步加载;初始化和启动速度等都是需要考虑和优化的。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。