一.前言 最近一直在研究Java8 的动态编译, 并且也被ZipFileIndex$Entry 内存泄漏所困扰,在无意中,看到一个第三方插件的动态编译.并且编译速度是原来的2-3倍.原本打算直接用这个插件,但是发现插件的编译源码存在我之前已经解决过的内存泄漏问题.所以拿其源码,进行改善. 二.第三方插件 1.maven配置 我找到的这个第三方编译插件有两个,第一个是:Talismane Utilities ,在maven仓库中可搜到相关pom的配置: http://mvnrepository.c…
COCOS2DX 3.0 优化提升渲染速度 Auto-batching 近期在看COCOS2DX 3.0的Auto-batching合批与Auto Culling动态缩减功能以下就来细致看看吧:整合好的渲染提速干货: 简单介绍 在游戏的绘制渲染中.往往消耗非常多资源和内存,当绘制精灵数量越多,游戏的卡顿会非常明显,为了优化和提升渲染效率. Cocos2d-x为我们提供了Auto-batching和SpriteBatchNode. Auto-batching 意思是Renderer将多次draw的…
在项目打包上有两个目标:减少打包代码体积和加快打包速度 1. 减少打包体积: (1)对于用的比较少的库,可以去掉(我去掉了jquery以及lodash),用到的地方,参考源码自己写 (2)非用不可的又比较大的库(我这里用了monaco-edit),使用cdn方式引入 打包体积减少的情况下,自然速度也会有所提升 2. 加快打包速度: 这里推荐一篇个人感觉很棒的文章 https://juejin.im/post/5bfa696d51882579117f7d26 我目前做了这些: (1)vue-cli…
package spring.vhostall.com.proxy; public interface Store { public void sell(); } -------------------------------------------- package spring.vhostall.com.proxy; public class Supermarket implements Store { @Override public void sell() { System.out.pr…
一.给JS文件减肥. 有的人为了给网站增加炫目效果,往往会使用一些JS效果代码,这在上个世纪似乎还很流行,对于现在来说,最好在用户体验确实需要的情况下,使用这些东西.至于希望给自己的JS文件减肥的童鞋,网上的工具里有很多,在百度一搜就会有应用,功能很全.把一个已经完善的JS文件进行压缩是主流网站的一个惯性动作,因为压缩量确实很可观.以下是几个比较好的压缩工具: YUI压缩工具 (http://developer.yahoo.com/yui/compressor/)Dean Edwards Pac…
6. 晚期编译优化 晚期编译优化主要是在运行时做的一些优化手段. 6.1 JIT编译器 在部分的商用虚拟机中,java程序最初是通过解释器(Interpreter) 进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁时,就会把这些代码认定为"热点代码"(Hot Spot Code).为了提高热点代码的执行效率,在运行时,虚拟机将会把这些代码编译成与本地平台相关的机器码,并进行各种层次的优化,完成这个过程的编译器称为即时编译器(Just In Time Compiler) jav…
5. 早期编译优化 早起编译优化主要指编译期进行的优化. java的编译期可能指的以下三种: 前端编译器:将.java文件变成.class文件,例如Sun的Javac.Eclipse JDT中的增量式编译器(ECJ) JIT编译器(Just In Time Compiler):将字节码变成机器码,例如HotSpot VM的C1.C2编译器 AOT编译器(Ahead Of Time Compiler):直接把*.java文件编译成本地机器码,例如GNU Compiler for the Java(…
本博客是阅读<java time and space performance tips>这本小书后整理的读书笔记性质博客,增加了几个测试代码,代码可以在此下载:java时空间性能优化测试代码 ,文件StopWatch是一个秒表计时工具类,它的代码在文末. 1. 时间优化 1.1 标准代码优化 a. 将循环不变量的计算移出循环 我写了一个测试例子如下: import util.StopWatch; /** * 循环优化: * 除了本例中将循环不变量移出循环外,还有将忙循环放在外层 * @auth…
1.引言 岁月真是个养猪场,这几年,人胖了,微信代码也翻了. 记得 14 年转岗来微信时,用自己笔记本编译微信工程才十来分钟.如今用公司配的 17 年款 27-inch iMac 编译要接近半小时:偶然间更新完代码,又莫名其妙需要全新编译.在这么低的编译效率下,开发心情受到严重影响. 于是年初我向上头请示,优化微信编译效率,上头也同意了.     2.现有方案 在动手之前,先搜索目前已有方案,大概情况如下. 2.1 优化工程配置 1)将 Debug Information Format 改为 D…
这是专门探索 JavaScript 及其所构建的组件的系列文章的第 14 篇. 如果你错过了前面的章节,可以在这里找到它们: JavaScript 是如何工作的:引擎,运行时和调用堆栈的概述! JavaScript 是如何工作的:深入V8引擎&编写优化代码的5个技巧! JavaScript 是如何工作的:内存管理+如何处理4个常见的内存泄漏 ! JavaScript 是如何工作的:事件循环和异步编程的崛起+ 5种使用 async/await 更好地编码方式! JavaScript 是如何工作的:…