如何让程序更快的运行
程序 如何 运行 更快
2023-09-11 14:18:08 时间
1、客观上说程序运行必会收到硬件资源如CPU计算能力、IO读写速度、网络带宽和软件资源如sockets连接数、数据库连接数的限制,为了更快的让程序运行尽早完成它要完成的任务就要突破这些限制。突破硬件资源的限制的方法是将程序的任务分解到多台硬件组成的集群上来执行;突破软件资源的限制可通过资源池的方式来解决。
2、为了更快的提升计算资源的使用效率,电脑系统中运行最快的CPU采用时间片轮换的方式来执行多个任务,如果一个任务还没执行完就要保存当前任务的上下文,下次再执行时再加载这个任务的上下文,这个过程称为上下文切换,上下文切换也会消耗系统资源,为了更高效的利用资源,要尽可能的减少上下文切换。
3、多任务(线程)运行时必然会涉及到共享变量的访问,保证在多任务执行下共享数据的安全访问称之为线程安全,Java中将线程安全划分为5类:不可变、绝对线程安全、相对线程安全、线程兼容、线程对立。
4、如何更好的共享数据,可以用不同步、非阻塞同步、互斥(组赛)同步。不用同步要保证代码块是可重入的或者使用ThreadLocal以空间来换时间的方法来进行。非阻塞同步多基于CAS自旋操作,又称乐观锁策略。互斥同步主要是应用各种锁,从最原始的同步关键字重量级锁逐步优化出现轻量级锁,再优化出现偏向锁;为了让程序能在大多数情况下更高效的运行,jdk6、7默认使用了偏向锁,若不成功会依次升级用轻量级锁、传统重量级锁。
5、操作原子性是多线程同步的一个重要特性,传统CPU通过阻塞总线来实现原子操作,现代CPU增加了阻塞锁定缓存来实现原子操作的特性。JAVA中要实现原子操作,要么通过锁同步,要么通过原子类的CAS自旋操作实现。
晚上睡了,未完待续……
相关文章
- 监听器和 利 用观察者设计模式设计一个程序
- 【BZOJ4195】【NOI2015】程序自动分析(并查集)
- taro + iview 实现跨平台开发(App,Wap,微信小程序)
- C#【必备技能篇】如何以管理员身份运行程序
- 《CUDA高性能并行计算》----第1章 起 步 1.1 运行CUDA样例程序
- 【转】如何使用visual studio将你的程序打包成安装包
- 我程序人生的启蒙书
- 【微信小程序】如何获取用户绑定手机号
- 微信小程序快速开发上手
- 微信小程序如何调用API实现数据请求-wx.request()
- 【快应用】小程序转快应用如何退出整个快应用
- java中关于如何运行jar格式程序的说明
- 小程序系统API、网络请求封装、弹窗Toast、确认框、操作菜单栏
- 浅析端口被占用如何做、windows报错'telnet'不是内部或外部命令,也不是可运行的程序如何处理以及ping不通telnet可能通(即ping与telnet的区别)
- android程序启动画面之Splash总结[转]
- 如何制作人脸微笑检测程序
- Pork Explosion漏洞:它是如何被用于创建Android后门程序的?
- 面对微信小程序的威胁,支付宝可以考虑安心做B2C的社交了
- 原因就是程序跑得太快,框还没来得急出现。在clienttrader.py里加一句延时的语句就行
- 如何把样例从文件中输入程序