小编Air*_*Air的帖子

如果性能很重要,我应该使用Java的String.format()吗?

我们必须一直为日志输出构建字符串等等.在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

207
推荐指数
8
解决办法
15万
查看次数

节点包(Grunt)已安装但不可用

我试图建立一个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)

build package node.js npm

185
推荐指数
6
解决办法
13万
查看次数

如何防止背景图像闪烁变化

我正在通过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)

html javascript css image

19
推荐指数
3
解决办法
2万
查看次数

在Java中生成CPU负载

我正在进行一些吞吐量测试.我的申请必须

  1. 从JMS读取
  2. 做一些处理
  3. 写信给JMS

我的目标是模拟#2,"一些处理".也就是说,在转发事件之前引入延迟并占用CPU一段给定时间(例如500ms).

天真的方法是Thread.sleep(500).这会在执行中引入正确的延迟,但不会运行CPU.

计算斐波纳契数是一种选择. 有没有人使用任何有趣的技术只是为了让CPU在一段时间内保持忙碌状态?

理想的特征是:

  • 执行各种指令,而不是(例如)只是在循环上旋转
  • HotSpot VM不会优化任何东西
  • 有一个简单的方法可以上下调整处理周期(完成时间会因硬件而明显不同)

java encryption cpu load

10
推荐指数
3
解决办法
8813
查看次数