@@ -221,7 +221,7 @@ export function main() {
221221 } ) ;
222222 } ) ;
223223
224- [ 'script' , 'gcTime' , ' render'] . forEach ( ( metricName ) => {
224+ [ 'script' , 'render' ] . forEach ( ( metricName ) => {
225225 it ( `should support ${ metricName } metric` , ( done ) => {
226226 aggregate ( [
227227 eventFactory . start ( metricName , 0 ) ,
@@ -233,12 +233,28 @@ export function main() {
233233 } ) ;
234234 } ) ;
235235
236- it ( 'should support gcAmount metric' , ( done ) => {
236+ it ( 'should support gcTime/ gcAmount metric' , ( done ) => {
237237 aggregate ( [
238238 eventFactory . start ( 'gc' , 0 , { 'usedHeapSize' : 2500 } ) ,
239239 eventFactory . end ( 'gc' , 5 , { 'usedHeapSize' : 1000 } )
240240 ] ) . then ( ( data ) => {
241+ expect ( data [ 'gcTime' ] ) . toBe ( 5 ) ;
241242 expect ( data [ 'gcAmount' ] ) . toBe ( 1.5 ) ;
243+ expect ( data [ 'majorGcTime' ] ) . toBe ( 0 ) ;
244+ expect ( data [ 'majorGcAmount' ] ) . toBe ( 0 ) ;
245+ done ( ) ;
246+ } ) ;
247+ } ) ;
248+
249+ it ( 'should support majorGcTime/majorGcAmount metric' , ( done ) => {
250+ aggregate ( [
251+ eventFactory . start ( 'gc' , 0 , { 'usedHeapSize' : 2500 } ) ,
252+ eventFactory . end ( 'gc' , 5 , { 'usedHeapSize' : 1000 , 'majorGc' : true } )
253+ ] ) . then ( ( data ) => {
254+ expect ( data [ 'gcTime' ] ) . toBe ( 5 ) ;
255+ expect ( data [ 'gcAmount' ] ) . toBe ( 1.5 ) ;
256+ expect ( data [ 'majorGcTime' ] ) . toBe ( 5 ) ;
257+ expect ( data [ 'majorGcAmount' ] ) . toBe ( 1.5 ) ;
242258 done ( ) ;
243259 } ) ;
244260 } ) ;
@@ -280,48 +296,6 @@ export function main() {
280296
281297 } ) ;
282298
283- describe ( 'gcTimeInScript / gcAmountInScript' , ( ) => {
284-
285- it ( 'should detect gc during script execution with begin/end events' , ( done ) => {
286- aggregate ( [
287- eventFactory . start ( 'script' , 0 ) ,
288- eventFactory . start ( 'gc' , 1 , { 'usedHeapSize' : 10000 } ) ,
289- eventFactory . end ( 'gc' , 4 , { 'usedHeapSize' : 0 } ) ,
290- eventFactory . end ( 'script' , 5 )
291- ] ) . then ( ( data ) => {
292- expect ( data [ 'gcTimeInScript' ] ) . toBe ( 3 ) ;
293- expect ( data [ 'gcAmountInScript' ] ) . toBe ( 10.0 ) ;
294- done ( ) ;
295- } ) ;
296- } ) ;
297-
298- it ( 'should detect gc during script execution with complete events' , ( done ) => {
299- aggregate ( [
300- eventFactory . complete ( 'script' , 0 , 5 ) ,
301- eventFactory . start ( 'gc' , 1 , { 'usedHeapSize' : 10000 } ) ,
302- eventFactory . end ( 'gc' , 4 , { 'usedHeapSize' : 0 } )
303- ] ) . then ( ( data ) => {
304- expect ( data [ 'gcTimeInScript' ] ) . toBe ( 3 ) ;
305- expect ( data [ 'gcAmountInScript' ] ) . toBe ( 10.0 ) ;
306- done ( ) ;
307- } ) ;
308- } ) ;
309-
310- it ( 'should ignore gc outside of script execution' , ( done ) => {
311- aggregate ( [
312- eventFactory . start ( 'gc' , 1 , { 'usedHeapSize' : 10 } ) ,
313- eventFactory . end ( 'gc' , 4 , { 'usedHeapSize' : 0 } ) ,
314- eventFactory . start ( 'script' , 0 ) ,
315- eventFactory . end ( 'script' , 5 )
316- ] ) . then ( ( data ) => {
317- expect ( data [ 'gcTimeInScript' ] ) . toEqual ( 0.0 ) ;
318- expect ( data [ 'gcAmountInScript' ] ) . toEqual ( 0.0 ) ;
319- done ( ) ;
320- } ) ;
321- } ) ;
322-
323- } ) ;
324-
325299 } ) ;
326300
327301 } ) ;
0 commit comments