diff --git a/doc/node.1 b/doc/node.1 index e1b2f77dd9b307..b2ea38eb59b726 100644 --- a/doc/node.1 +++ b/doc/node.1 @@ -99,6 +99,13 @@ Process v8 profiler output generated using the v8 option \fB\-\-prof\fR .BR \-\-v8\-options Print v8 command line options. +.TP +.BR \-\-v8\-pool\-size =\fInum\fR +Set v8's thread pool size which will be used to allocate background jobs. +If set to 0 then v8 will choose an appropriate size of the thread pool based +on the number of online processors. If the value provided is larger than v8's +max then the largest value will be chosen. + .TP .BR \-\-tls\-cipher\-list =\fIlist\fR Specify an alternative default TLS cipher list. (Requires Node.js to be built with crypto support. (Default)) @@ -115,7 +122,6 @@ Force FIPS-compliant crypto on startup. (Cannot be disabled from script code.) ( .BR \-\-icu\-data\-dir =\fIfile\fR Specify ICU data load path. (overrides \fBNODE_ICU_DATA\fR) - .SH ENVIRONMENT VARIABLES .TP diff --git a/src/node.cc b/src/node.cc index b5bffa113156df..a3dd6c0bd8e1e9 100644 --- a/src/node.cc +++ b/src/node.cc @@ -145,6 +145,8 @@ static const char** preload_modules = nullptr; static bool use_debug_agent = false; static bool debug_wait_connect = false; static int debug_port = 5858; +static const int v8_default_thread_pool_size = 4; +static int v8_thread_pool_size = v8_default_thread_pool_size; static bool prof_process = false; static bool v8_is_profiling = false; static bool node_is_initialized = false; @@ -169,7 +171,6 @@ static uv_async_t dispatch_debug_messages_async; static node::atomic node_isolate; static v8::Platform* default_platform; - static void PrintErrorString(const char* format, ...) { va_list ap; va_start(ap, format); @@ -3316,6 +3317,7 @@ static void PrintHelp() { " --zero-fill-buffers automatically zero-fill all newly allocated\n" " Buffer and SlowBuffer instances\n" " --v8-options print v8 command line options\n" + " --v8-pool-size=num set v8's thread pool size\n" #if HAVE_OPENSSL " --tls-cipher-list=val use an alternative default TLS cipher list\n" #endif @@ -3459,6 +3461,8 @@ static void ParseArgs(int* argc, } else if (strcmp(arg, "--v8-options") == 0) { new_v8_argv[new_v8_argc] = "--help"; new_v8_argc += 1; + } else if (strncmp(arg, "--v8-pool-size=", 15) == 0) { + v8_thread_pool_size = atoi(arg + 15); #if HAVE_OPENSSL } else if (strncmp(arg, "--tls-cipher-list=", 18) == 0) { default_cipher_list = arg + 18; @@ -4266,8 +4270,7 @@ int Start(int argc, char** argv) { V8::SetEntropySource(crypto::EntropySource); #endif - const int thread_pool_size = 4; - default_platform = v8::platform::CreateDefaultPlatform(thread_pool_size); + default_platform = v8::platform::CreateDefaultPlatform(v8_thread_pool_size); V8::InitializePlatform(default_platform); V8::Initialize();