我们必须一直为日志输出构建字符串等等.在JDK版本中,我们学会了何时使用StringBuffer(许多追加,线程安全)和StringBuilder(许多追加,非线程安全).
有什么建议使用String.format()?它是否有效,或者我们是否被迫坚持连接性能很重要的单线?
例如丑陋的旧式,
String s = "What do you get if you multiply " + varSix + " by " + varNine + "?";
Run Code Online (Sandbox Code Playgroud)
与整洁的新风格(可能很慢),
String s = String.format("What do you get if you multiply %d by %d?", varSix, varNine);
Run Code Online (Sandbox Code Playgroud)
注意:我的具体用例是我的代码中的数百个"单行"日志字符串.它们不涉及循环,所以StringBuilder太重量级了.我String.format()特别感兴趣.
java string performance string-formatting micro-optimization
我试图建立一个GitHub的jQuery的UI库使用grunt,但运行后npm install我还是根据无法运行该命令自述文件.它只是给出No command 'grunt' found:
james@ubuntu:~/Documents/projects/ad2/lib/jquery-ui$ grunt build
No command 'grunt' found, did you mean:
Command 'grun' from package 'grun' (universe)
grunt: command not found
james@ubuntu:~/Documents/projects/ad2/lib/jquery-ui$ npm ls
jquery-ui@1.9.0pre /home/james/Documents/projects/ad2/lib/jquery-ui
??? grunt@0.3.9
? ??? async@0.1.18
? ??? colors@0.6.0-1
? ??? connect@1.8.7
? ? ??? formidable@1.0.9
? ? ??? mime@1.2.5
? ? ??? qs@0.5.0
? ??? dateformat@1.0.2-1.2.3
? ??? glob-whatev@0.1.6
? ? ??? minimatch@0.2.4
? ? ??? lru-cache@1.0.6
? ??? gzip-js@0.3.1 …Run Code Online (Sandbox Code Playgroud) 我正在通过javascript将一个重复的背景图像从画布应用到div:
var img_canvas = document.createElement('canvas');
img_canvas.width = 16;
img_canvas.height = 16;
img_canvas.getContext('2d').drawImage(canvas, 0, 0, 16, 16);
var img = img_canvas.toDataURL("image/png");
document.querySelector('#div').style.backgroundImage = 'url(' + img + ')';
Run Code Online (Sandbox Code Playgroud)
我必须经常更新它.问题是它在变化时闪烁,它似乎不会发生在Chrome中,但它在Firefox和Safari中确实很糟糕.有可能阻止这个吗?我认为它不会发生,因为它是一个dataurl,因此不需要下载.
解:
// create a new Image object
var img_tag = new Image();
// when preload is complete, apply the image to the div
img_tag.onload = function() {
document.querySelector('#div').style.backgroundImage = 'url(' + img + ')';
}
// setting 'src' actually starts the preload
img_tag.src = img;
Run Code Online (Sandbox Code Playgroud) 我正在进行一些吞吐量测试.我的申请必须
我的目标是模拟#2,"一些处理".也就是说,在转发事件之前引入延迟并占用CPU一段给定时间(例如500ms).
天真的方法是Thread.sleep(500).这会在执行中引入正确的延迟,但不会运行CPU.
计算斐波纳契数是一种选择. 有没有人使用任何有趣的技术只是为了让CPU在一段时间内保持忙碌状态?
理想的特征是:
java ×2
build ×1
cpu ×1
css ×1
encryption ×1
html ×1
image ×1
javascript ×1
load ×1
node.js ×1
npm ×1
package ×1
performance ×1
string ×1