mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-26 11:38:51 +01:00
use stringify/parse and replacer/reviver for marshalling for the sake of perfomance, #2511
This commit is contained in:
@@ -25,7 +25,6 @@ import {IInstantiationService } from 'vs/platform/instantiation/common/instantia
|
||||
import InstantiationService = require('vs/platform/instantiation/common/instantiationService');
|
||||
import {PluginHostPluginService} from 'vs/platform/plugins/common/nativePluginService';
|
||||
import {PluginHostThreadService} from 'vs/platform/thread/common/pluginHostThreadService';
|
||||
import marshalling = require('vs/base/common/marshalling');
|
||||
import {ExtHostTelemetryService} from 'vs/workbench/api/node/extHostTelemetry';
|
||||
import {BaseRequestService} from 'vs/platform/request/common/baseRequestService';
|
||||
import {BaseWorkspaceContextService} from 'vs/platform/workspace/common/baseWorkspaceContextService';
|
||||
@@ -59,9 +58,7 @@ export function exit(code?: number) {
|
||||
}
|
||||
|
||||
export function createServices(remoteCom: IPluginsIPC, initData: IInitData, sharedProcessClient: Client): IInstantiationService {
|
||||
// the init data is not demarshalled
|
||||
initData = marshalling.deserialize(initData);
|
||||
|
||||
|
||||
let contextService = new BaseWorkspaceContextService(initData.contextService.workspace, initData.contextService.configuration, initData.contextService.options);
|
||||
let threadService = new PluginHostThreadService(remoteCom);
|
||||
threadService.setInstantiationService(InstantiationService.create({ threadService: threadService }));
|
||||
|
||||
@@ -10,6 +10,7 @@ import { TPromise } from 'vs/base/common/winjs.base';
|
||||
import { PluginHostMain, createServices, IInitData, exit } from 'vs/workbench/node/pluginHostMain';
|
||||
import { Client, connect } from 'vs/base/node/service.net';
|
||||
import { create as createIPC, IPluginsIPC } from 'vs/platform/plugins/common/ipcRemoteCom';
|
||||
import marshalling = require('vs/base/common/marshalling');
|
||||
|
||||
interface IRendererConnection {
|
||||
remoteCom: IPluginsIPC;
|
||||
@@ -27,7 +28,10 @@ function connectToRenderer(): TPromise<IRendererConnection> {
|
||||
const stats: number[] = [];
|
||||
|
||||
// Listen init data message
|
||||
process.once('message', msg => {
|
||||
process.once('message', raw => {
|
||||
|
||||
let msg = marshalling.parse(raw);
|
||||
|
||||
const remoteCom = createIPC(data => {
|
||||
process.send(data);
|
||||
stats.push(data.length);
|
||||
|
||||
Reference in New Issue
Block a user