Improve IPC performance.
Reading of JSON data off the buffer, 10-15% performance increase. Fixes #1864.
This commit is contained in:
parent
73b4b86d29
commit
59be975322
@ -77,14 +77,15 @@ function setupChannel(target, channel) {
|
|||||||
if (pool) {
|
if (pool) {
|
||||||
jsonBuffer += pool.toString('ascii', offset, offset + length);
|
jsonBuffer += pool.toString('ascii', offset, offset + length);
|
||||||
|
|
||||||
var i;
|
var i, start = 0;
|
||||||
while ((i = jsonBuffer.indexOf('\n')) >= 0) {
|
while ((i = jsonBuffer.indexOf('\n', start)) >= 0) {
|
||||||
var json = jsonBuffer.slice(0, i);
|
var json = jsonBuffer.slice(start, i);
|
||||||
var message = JSON.parse(json);
|
var message = JSON.parse(json);
|
||||||
jsonBuffer = jsonBuffer.slice(i + 1);
|
|
||||||
|
|
||||||
target.emit('message', message, recvHandle);
|
target.emit('message', message, recvHandle);
|
||||||
|
start = i+1;
|
||||||
}
|
}
|
||||||
|
jsonBuffer = jsonBuffer.slice(start);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
channel.close();
|
channel.close();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user