vmarchaud
0ebf01dc53
perf_hooks: add HttpRequest statistics monitoring #28445
...
```js
const { PerformanceObserver, performance } = require('perf_hooks');
const http = require('http');
const obs = new PerformanceObserver((items) => {
const entry = items.getEntries()[0];
console.log(entry.name, entry.duration);
});
obs.observe({ entryTypes: ['http'] });
const server = http.Server(function(req, res) {
server.close();
res.writeHead(200);
res.end('hello world\n');
});
server.listen(0, function() {
const req = http.request({
port: this.address().port,
path: '/',
method: 'POST'
}).end();
});
```
PR-URL: https://github.com/nodejs/node/pull/28486
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
2019-07-12 00:36:27 +02:00
Jan Krems
ca0884a60b
doc: mention unit for event loop delay measurements
...
PR-URL: https://github.com/nodejs/node/pull/28629
Reviewed-By: Ben Coe <bencoe@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
2019-07-11 22:08:59 +02:00
Yuriy Vasiyarov
7334aaf2ea
doc: document PerformanceNodeTiming.environment field
...
PR-URL: https://github.com/nodejs/node/pull/28280
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
2019-06-21 04:07:54 -06:00
Ruben Bridgewater
f8763bb077
benchmark,doc,lib,test: capitalize comments
...
PR-URL: https://github.com/nodejs/node/pull/26483
Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
2019-03-10 00:44:40 +01:00
Michaël Zasso
82ee0ff1b8
2018-02-14, Version 11.10.0 (Current)
...
Notable changes:
deps:
* Updated libuv to 1.26.0.
* Updated npm to 6.7.0.
http, http2:
* `response.writeHead` now returns the response object.
perf_hooks:
* Implemented a histogram based API.
process:
* Exposed `process.features.inspector`.
repl:
* Added `repl.setupHistory` for programmatic repl.
tls:
* Introduced client "session" event.
PR-URL: https://github.com/nodejs/node/pull/26098
2019-02-14 23:55:48 +01:00
Vse Mozhet Byt
0a4c69a5c5
doc: fix some nits in perf_hooks
...
PR-URL: https://github.com/nodejs/node/pull/26022
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Anto Aravinth <anto.aravinth.cse@gmail.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2019-02-12 05:14:57 +02:00
James M Snell
bcdd228f90
perf_hooks: implement histogram based api
...
Add a sampling-based event loop delay monitor.
```js
const { monitorEventLoopDelay } = require('perf_hooks');
const h = monitorEventLoopDelay();
h.enable();
h.disable();
console.log(h.percentiles);
console.log(h.min);
console.log(h.max);
console.log(h.mean);
console.log(h.stddev);
console.log(h.percentile(50));
```
PR-URL: https://github.com/nodejs/node/pull/25378
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2019-02-08 09:20:18 -08:00
Ruben Bridgewater
50dd555910
doc,lib,test: capitalize comment sentences
...
This activates the eslint capitalize comment rule for comments
above 50 characters.
PR-URL: https://github.com/nodejs/node/pull/24996
Reviewed-By: Ujjwal Sharma <usharma1998@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2018-12-17 17:14:35 +01:00
James M Snell
b55f6a0f01
perf_hooks: remove less useful bootstrap marks
...
While `perf_hooks` is still in experimental, remove less useful
bootstrap milestones.
PR-URL: https://github.com/nodejs/node/pull/21247
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
2018-06-15 09:05:19 -07:00
Vse Mozhet Byt
a3bd06a5e6
doc: remove redundant empty lines
...
PR-URL: https://github.com/nodejs/node/pull/20398
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
2018-04-29 17:48:43 +03:00
Vse Mozhet Byt
715d7f31b3
doc: unify section structures
...
PR-URL: https://github.com/nodejs/node/pull/20028
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
2018-04-15 02:37:50 +03:00
Vse Mozhet Byt
dff214153f
doc: specify definite Array types
...
Replace `{Array}` with `{type[]}`.
PR-URL: https://github.com/nodejs/node/pull/19895
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2018-04-09 17:04:48 +03:00
Vse Mozhet Byt
237cbe10fb
doc,tools: formalize, unify, codify default values
...
PR-URL: https://github.com/nodejs/node/pull/19737
Reviewed-By: Gus Caplan <me@gus.host>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
2018-04-04 12:30:36 +03:00
James M Snell
2ec6995555
perf_hooks: simplify perf_hooks
...
Remove the `performance.getEntries()` and `performance.clear*()`
variants and eliminate the accumulation of the global timeline
entries. The design of this particular bit of the API is a memory
leak and performance footgun. The `PerformanceObserver` API is
a better approach to consuming the data in a more transient way.
PR-URL: https://github.com/nodejs/node/pull/19563
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2018-04-03 13:57:41 -07:00
Yuta Hiroto
9125479be9
doc: add http2
to performanceEntry.entryType
...
add `http2` to performanceEntry.entryType in perf_hooks
PR-URL: https://github.com/nodejs/node/pull/19584
Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
2018-03-25 10:17:42 -07:00
Timothy Gu
9256dbb611
perf_hooks: fix timing
...
Fixes: https://github.com/nodejs/node/issues/17892
Fixes: https://github.com/nodejs/node/issues/17893
Fixes: https://github.com/nodejs/node/issues/18992
PR-URL: https://github.com/nodejs/node/pull/18993
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
2018-03-06 07:50:01 -08:00
James M Snell
9e509b622b
perf_hooks: emit trace events for marks, measures, and timerify
...
Adds the `node.perf.usertiming` trace events category for recording
usertiming marks and measures (e.g. `perf_hooks.performance.mark()`)
in the trace events timeline.
Adds the `node.perf.function` trace events category for recording
`perf_hooks.performance.timerify()` durations in the trace events
timeline.
PR-URL: https://github.com/nodejs/node/pull/18789
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2018-02-26 13:55:33 -08:00
Myles Borins
945eb1bb69
2018-02-22, Version 9.6.0 (Current)
...
Notable changes:
* async_hooks:
- deprecate unsafe emit{Before,After} (Ali Ijaz Sheikh)
https://github.com/nodejs/node/pull/18513
- rename PromiseWrap.parentId to PromiseWrap.isChainedPromise
(Ali Ijaz Sheikh) https://github.com/nodejs/node/pull/18633
* deps:
- update node-inspect to 1.11.3 (Jan Krems)
https://github.com/nodejs/node/pull/18354
- ICU 60.2 bump (Steven R. Loomis)
https://github.com/nodejs/node/pull/17687
- Introduce ScriptOrModule and HostDefinedOptions to V8 (Jan Krems)
https://github.com/nodejs/node/pull/16889
* http:
- add options to http.createServer() for `IncomingMessage` and
`ServerReponse` (Peter Marton)
https://github.com/nodejs/node/pull/15752
* http2:
- add http fallback options to .createServer (Peter Marton)
https://github.com/nodejs/node/pull/15752
* https:
- Adds the remaining options from tls.createSecureContext() to the
string generated by Agent#getName(). This allows https.request()
to accept the options and generate unique sockets appropriately.
(Jeff Principe)
https://github.com/nodejs/node/pull/16402
* inspector:
- --inspect-brk for es modules (Guy Bedford)
https://github.com/nodejs/node/pull/18194
* lib:
- allow process kill by signal number (Sam Roberts)
https://github.com/nodejs/node/pull/16944
* module:
- enable dynamic import (Myles Borins)
https://github.com/nodejs/node/pull/18387
- dynamic import is now supported (Jan Krems)
https://github.com/nodejs/node/pull/15713
* napi:
- add methods to open/close callback scope (Michael Dawson)
https://github.com/nodejs/node/pull/18089
* src:
- allow --perf-(basic-)?prof in NODE_OPTIONS (Leko)
https://github.com/nodejs/node/pull/17600
* vm:
- add support for es modules (Gus Caplan)
https://github.com/nodejs/node/pull/17560
PR-URL: https://github.com/nodejs/node/pull/18902
2018-02-22 12:02:49 -05:00
Evan Lucas
83d0f4c92b
2018-01-31, Version 9.5.0 (Current)
...
Notable changes:
* cluster
- add cwd to cluster.settings (cjihrig) [#18399 ](https://github.com/nodejs/node/pull/18399 )
* deps
- upgrade libuv to 1.19.1 (cjihrig) [#18260 ](https://github.com/nodejs/node/pull/18260 )
* meta
- add Leko to collaborators (Leko) [#18117 ](https://github.com/nodejs/node/pull/18117 )
- add vdeturckheim as collaborator (vdeturckheim) [#18432 ](https://github.com/nodejs/node/pull/18432 )
* n-api
- expose n-api version in process.versions (Michael Dawson) [#18067 ](https://github.com/nodejs/node/pull/18067 )
* perf_hooks
- add performance.clear() (James M Snell) [#18046 ](https://github.com/nodejs/node/pull/18046 )
* stream
- avoid writeAfterEnd() while ending (陈刚) [#18170 ](https://github.com/nodejs/node/pull/18170 )
PR-URL: https://github.com/nodejs/node/pull/18464
2018-01-31 18:06:32 -06:00
James M Snell
6bcd31f2f4
perf_hooks: add warning when too many entries in the timeline
...
PR-URL: https://github.com/nodejs/node/pull/18087
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2018-01-31 15:24:58 -08:00
Antony Tran
d8263a0677
doc: add doc for performance.clearGC()
...
PR-URL: https://github.com/nodejs/node/pull/18331
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Khaidi Chu <i@2333.moe>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
2018-01-24 13:39:57 +02:00
James M Snell
20fe04f113
perf_hooks,http2: add performance.clear()
...
Add missing clear() method to `perf_hooks.performance` to
remove the entries from the master timeline to prevent
that from being a memory leak.
PR-URL: https://github.com/nodejs/node/pull/18046
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2018-01-11 10:41:49 -08:00
Tobias Nießen
d74a1ed7d9
doc: remove duplicate words in API docs
...
PR-URL: https://github.com/nodejs/node/pull/17937
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com>
2018-01-02 00:13:02 +01:00
Luigi Pinca
97ba69f915
doc: add missing introduced_in comments
...
Add missing "introduced_in" comments for alternative version links.
PR-URL: https://github.com/nodejs/node/pull/16741
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
2017-11-19 18:10:05 +01:00
Sam Roberts
dd83b5f2ac
perf_hooks: remove docs for unimplemented API
...
The node frame (aka loop) timing API did not land, it depends on
https://github.com/libuv/libuv/pull/1489 which is still a WIP.
See: https://github.com/nodejs/node/pull/14680#discussion_r140605664
PR-URL: https://github.com/nodejs/node/pull/15641
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Timothy Gu <timothygu99@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
2017-09-29 09:38:48 -07:00
Mani Maghsoudlou
049a8d7c1d
doc: fix entryTypes type and missing link
...
PR-URL: https://github.com/nodejs/node/pull/15406
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
2017-09-19 16:36:30 -03:00
Myles Borins
a10856a7d3
2017-09-12, Version 8.5.0 (Current)
...
Notable Changes
* build:
* Snapshots are now re-enabled in V8
https://github.com/nodejs/node/pull/14875
* console:
* Implement minimal `console.group()`.
https://github.com/nodejs/node/pull/14910
* deps:
* upgrade libuv to 1.14.1
https://github.com/nodejs/node/pull/14866
* update nghttp2 to v1.25.0
https://github.com/nodejs/node/pull/14955
* dns:
* Add `verbatim` option to dns.lookup(). When true, results from the
DNS resolver are passed on as-is, without the reshuffling that
Node.js otherwise does that puts IPv4 addresses before IPv6
addresses.
https://github.com/nodejs/node/pull/14731
* fs:
* add fs.copyFile and fs.copyFileSync which allows for more efficient
copying of files.
https://github.com/nodejs/node/pull/15034
* inspector:
* Enable async stack traces
https://github.com/nodejs/node/pull/13870
* module:
* Add support for ESM. This is currently behind the
`--experimental-modules` flag and requires the .mjs extension.
`node --experimental-modules index.mjs`
https://github.com/nodejs/node/pull/14369
* napi:
* implement promise
https://github.com/nodejs/node/pull/14365
* os:
* Add support for CIDR notation to the output of the
networkInterfaces() method.
https://github.com/nodejs/node/pull/14307
* perf_hooks:
* An initial implementation of the Performance Timing API for
Node.js. This is the same Performance Timing API implemented by
modern browsers with a number of Node.js specific properties. The
User Timing mark() and measure() APIs are implemented, as is a
Node.js specific flavor of the Frame Timing for measuring event
loop duration.
https://github.com/nodejs/node/pull/14680
* tls:
* multiple PFX in createSecureContext
[#14793 ](https://github.com/nodejs/node/pull/14793 )
* Added new collaborators:
* BridgeAR – Ruben Bridgewater
PR-URL: https://github.com/nodejs/node/pull/15308
2017-09-12 17:34:51 +02:00
Anna Henningsen
dd52cad044
doc,lib,src,test: strip executable bits off files
...
Remove the executable bits of the file modes of some files that
accidentally received it.
PR-URL: https://github.com/nodejs/node/pull/15132
Reviewed-By: Timothy Gu <timothygu99@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2017-09-01 10:09:41 -07:00
James M Snell
6db825ae82
perf_hooks: mark as experimental
...
PR-URL: https://github.com/nodejs/node/pull/14997
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Timothy Gu <timothygu99@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
2017-08-25 16:04:21 -07:00
James M Snell
67269fd7f3
perf_hooks: implementation of the perf timing API
...
An initial implementation of the Performance Timing API for Node.js.
This is the same Performance Timing API implemented by modern browsers
with a number of Node.js specific properties. The User Timing mark()
and measure() APIs are implemented, garbage collection timing, and
node startup milestone timing.
```js
const { performance } = require('perf_hooks');
performance.mark('A');
setTimeout(() => {
performance.mark('B');
performance.measure('A to B', 'A', 'B');
const entry = performance.getEntriesByName('A to B', 'measure')[0];
console.log(entry.duration);
}, 10000);
```
The implementation is at the native layer and makes use of uv_hrtime().
This should enable *eventual* integration with things like Tracing
and Inspection.
The implementation is extensible and should allow us to add new
performance entry types as we go (e.g. for measuring i/o perf,
etc).
Documentation and a test are provided.
PR-URL: https://github.com/nodejs/node/pull/14680
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-08-23 16:00:09 -07:00