我使用node.js,Python和Java为zeromq编写了一个简单的echo请求/回复测试.代码运行一个100K请求的循环.该平台是一款5yo MacBook Pro,具有2核和运行Snow Leopard的3G内存.
node.js始终比其他两个平台慢一个数量级.
Java的:
real 0m18.823s
user 0m2.735s
sys 0m6.042s
蟒蛇:
real 0m18.600s
user 0m2.656s
sys 0m5.857s
Node.js的:
real 3m19.034s
user 2m43.460s
sys 0m24.668s
有趣的是,使用Python和Java,客户端和服务器进程都使用了大约一半的CPU.node.js的客户端使用大约一个完整的CPU,服务器使用大约30%的CPU.客户端进程也有大量的页面错误导致我相信这是一个内存问题.此外,在10K请求节点只慢3倍; 它运行的时间越长越慢.
这是客户端代码(请注意,process.exit()行也不起作用,这就是除了使用time命令之外我还包括内部计时器的原因):
var zeromq = require("zeromq");
var counter = 0;
var startTime = new Date();
var maxnum = 10000;
var socket = zeromq.createSocket('req');
socket.connect("tcp://127.0.0.1:5502");
console.log("Connected to port 5502.");
function moo()
{
process.nextTick(function(){
socket.send('Hello');
if (counter < maxnum)
{
moo();
}
});
}
moo();
socket.on('message',
function(data)
{
if (counter % 1000 == 0)
{ …
Run Code Online (Sandbox Code Playgroud) 在单台机器上运行多个JVM(单个IP地址)时,在每个JVM中集成JMX需要一个单独的端口.由于我不会在这种环境中进入配置端口的原因,所以我希望在每台机器上都有一个JMX代理,它能够提供对每个本地JVM及其JMX数据的访问.这类似于本地SNMP守护程序,其中代理程序在每个单独的进程中运行.
然而,短暂的端口很好,因为它们超出了我有权访问的有争议的端口范围,用于显式配置JMX.
我知道像Oracle Coherence这样的产品在内部执行此操作,但是有没有通用的解决方案呢?
我正在尝试使用以下代码将数组中的值增加1,但是我遇到了一些问题.请有人帮帮我吗?
myArray[$position]=((${myArray[$position]}++))
Run Code Online (Sandbox Code Playgroud) AIR 3.4刚刚发布,具有工作者和本地APN支持等功能.
如何升级现有的Flash Builder安装以使用新的AIR SDK?