如何让程序更快的运行

1、客观上说程序运行必会收到硬件资源如CPU计算能力、IO读写速度、网络带宽和软件资源如sockets连接数、数据库连接数的限制,为了更快的让程序运行尽早完成它要完成的任务就要突破这些限制。突破硬件资源的限制的方法是将程序的任务分解到多台硬件组成的集群上来执行;突破软件资源的限制可通过资源池的方式来解决。

2、为了更快的提升计算资源的使用效率,电脑系统中运行最快的CPU采用时间片轮换的方式来执行多个任务,如果一个任务还没执行完就要保存当前任务的上下文,下次再执行时再加载这个任务的上下文,这个过程称为上下文切换,上下文切换也会消耗系统资源,为了更高效的利用资源,要尽可能的减少上下文切换。

3、多任务(线程)运行时必然会涉及到共享变量的访问,保证在多任务执行下共享数据的安全访问称之为线程安全,Java中将线程安全划分为5类:不可变、绝对线程安全、相对线程安全、线程兼容、线程对立。

4、如何更好的共享数据,可以用不同步、非阻塞同步、互斥(组赛)同步。不用同步要保证代码块是可重入的或者使用ThreadLocal以空间来换时间的方法来进行。非阻塞同步多基于CAS自旋操作,又称乐观锁策略。互斥同步主要是应用各种锁,从最原始的同步关键字重量级锁逐步优化出现轻量级锁,再优化出现偏向锁;为了让程序能在大多数情况下更高效的运行,jdk6、7默认使用了偏向锁,若不成功会依次升级用轻量级锁、传统重量级锁。

5、操作原子性是多线程同步的一个重要特性,传统CPU通过阻塞总线来实现原子操作,现代CPU增加了阻塞锁定缓存来实现原子操作的特性。JAVA中要实现原子操作,要么通过锁同步,要么通过原子类的CAS自旋操作实现。

晚上睡了,未完待续……

时间: 2024-07-30 11:56:04

如何让程序更快的运行的相关文章

《Java程序性能优化:让你的Java程序更快、更稳定》

Java程序性能优化:让你的Java程序更快.更稳定, 卓越网更便宜,不错的书吧

通过编译的方式,思考如何让程序更快(原创)

在.NET程序第一阶段编译时,有两种方式:Debug版本主要便于调试分析.Release版本进行了各种优化,体积更小.执行更快.编译更慢更严格. 体积更小,主要是因为Release版本中去掉了程序中所有的断点.代码行等调试信息.那么执行更快究竟为什么呢? 一段简单的测试代码(原创帖,转载请说明出处) 用WinDbg分析Debug版本 1 Normal JIT generated code 2 ConsoleApp.Program.Main() 3 Begin 000007fe94260090,

笔记《Java程序性能优化 让你的Java程序更快、更稳定》 第二章 设计调优

2.1 善用设计模式 23 (1) 1. 设计模式好处: 2.1.1 单例模式 23 (6) 1. 单例模式是一种对象创建模式,用于产生一个对象的具体实例,它可以确保系统中一个类只产生一个实例: 2. 两大好处:a.对于频繁创建的对象,可以省略创建对象所花费的时间:b.new操作减少,因而对系统内存的使用频率也会降低,降低GC压力,缩短GC停顿时间: 3. 单例模式的参与者:单例类和使用者: 4. 第一种实现方式:私有默认构造器,静态getInstance方法:这种实现方式简单.可靠,但不能延迟

听说,你想让自己的Go程序运行的更快?

到现在为止,我已经忘记了我在写什么,但我确定这篇文章是关于Go语言的.这主要是一篇,关于运行速度,而不是开发速度的文章--这两种速度是有区别的. 我曾经和很多聪明的人一起工作.我们很多人都对性能问题很痴迷,我们之前所做的是尝试逼近能够预期的(性能)的极限.应用引擎有一些非常严格的性能要求,所以我们才会做出改变.自从使用了Go语言之后,我们已经学习到了很多提升性能以及让Go在系统编程中正常运转的方法. Go的简单和原生并发使其成为一门非常有吸引力的后端开发语言,但更大的问题是它如何应对延迟敏感的应

代码示例:一些简单技巧优化JavaScript编译器工作详解,让你写出高性能运行的更快JavaScript代码

告诉你一些简单的技巧来优化JavaScript编译器工作,从而让你的JavaScript代码运行的更快.尤其是在你游戏中发现帧率下降或是当垃圾回收器有大量的工作要完成的时候. 单一同态: 当你定义了一个两个参数的函数,编译器会接受你的定义,如果函数参数的类型.个数或者返回值的类型改变编译器的工作会变得艰难.通常情况下,单一同态的数据结构和个数相同的参数会让你的程序会更好的工作. function example(a, b) { // 期望a,b都为数值类型 console.log(++a * +

让Python代码更快运行的 5 种方法

不论什么语言,我们都需要注意性能优化问题,提高执行效率.选择了脚本语言就要忍受其速度,这句话在某种程度上说明了Python作为脚本语言的不足之处,那就是执行效率和性能不够亮.尽管Python从未如C和Java一般快速,但是不少Python项目都处于开发语言领先位置. Python很简单易用,但大多数人使用Python都知道在处理密集型cpu工作时,它的数量级依然低于C.Java和JavaScript.但不少第三方不愿赘述Python的优点,而是决定自内而外提高其性能.如果你想让Python在同一

让你的Python代码更快运行的 5 种方法

https://cloud.tencent.com/developer/news/354761 不论什么语言,我们都需要注意性能优化问题,提高执行效率.选择了脚本语言就要忍受其速度,这句话在某种程度上说明了Python作为脚本语言的不足之 处,那就是执行效率和性能不够亮.尽管Python从未如C和Java一般快速,但是不少Python项目都处于开发语言领先位置. Python 很简单易用,但大多数人使用Python都知道在处理密集型cpu工作时,它的数量级依然低于C.Java和JavaScrip

新入职的程序员如何更快的融入项目当中?

最近,我们项目中新入职的程序员比较多,于是我们花上了15分钟,就"新入职的程序员如何更快的融入项目当中?"这个问题进行了讨论. 下面是讨论的结果总结,现在和大家分享一下,希望对新人或者项目管理者有一些有益的启发,则不枉我写这篇文章. 1.解bug可以很快上手 2.善于问问题,问周围同事 3.看什么时候加入的:如果加入项目比较晚的话,一定要看项目上已分享相关文档. 4.保持和做一个类型产品的同事的频繁交流. 5.不耻下问,一定要多问. 6.了解项目和产品流程. 7. 问的时候,头一次理解

让python代码运行的更快

原文地址:http://infiniteloop.in/blog/quick-python-performance-optimization-part-i/ 往往小的改变却能带来大的性能提升, 下面说下python中的几点性能优化. 1.使用timeit模块 2.减少函数的调用次数 3.使用xrange代替range 4.''.join()代替+,+= 5.while 1 代替 while True 6.列表解析>for循环>while循环 7.使用局部变量 8.创建生成器和使用yield 9