@@ -36,9 +36,9 @@ void php_v8_heap_statistics_create_from_heap_statistics(zval *return_value, v8::
3636 zend_update_property_double (this_ce, return_value, ZEND_STRL (" used_heap_size" ), hs->used_heap_size ());
3737 zend_update_property_double (this_ce, return_value, ZEND_STRL (" heap_size_limit" ), hs->heap_size_limit ());
3838 zend_update_property_double (this_ce, return_value, ZEND_STRL (" malloced_memory" ), hs->malloced_memory ());
39+ zend_update_property_double (this_ce, return_value, ZEND_STRL (" peak_malloced_memory" ), hs->peak_malloced_memory ());
3940
4041 zend_update_property_bool (this_ce, return_value, ZEND_STRL (" does_zap_garbage" ), static_cast <zend_long>(hs->does_zap_garbage ()));
41-
4242}
4343
4444static PHP_METHOD (V8HeapStatistics, __construct) {
@@ -49,12 +49,14 @@ static PHP_METHOD(V8HeapStatistics, __construct) {
4949 double used_heap_size = 0 ;
5050 double heap_size_limit = 0 ;
5151 double malloced_memory = 0 ;
52+ double peak_malloced_memory = 0 ;
5253
5354 zend_bool does_zap_garbage = ' \0 ' ;
5455
55- if (zend_parse_parameters (ZEND_NUM_ARGS (), " |dddddddb " ,
56+ if (zend_parse_parameters (ZEND_NUM_ARGS (), " |" " dddd " " dddd " " b " ,
5657 &total_heap_size, &total_heap_size_executable, &total_physical_size, &total_available_size,
57- &used_heap_size, &heap_size_limit, &malloced_memory, &does_zap_garbage) == FAILURE) {
58+ &used_heap_size, &heap_size_limit, &malloced_memory, &peak_malloced_memory,
59+ &does_zap_garbage) == FAILURE) {
5860 return ;
5961 }
6062
@@ -65,6 +67,7 @@ static PHP_METHOD(V8HeapStatistics, __construct) {
6567 zend_update_property_double (this_ce, getThis (), ZEND_STRL (" used_heap_size" ), used_heap_size);
6668 zend_update_property_double (this_ce, getThis (), ZEND_STRL (" heap_size_limit" ), heap_size_limit);
6769 zend_update_property_double (this_ce, getThis (), ZEND_STRL (" malloced_memory" ), malloced_memory);
70+ zend_update_property_double (this_ce, getThis (), ZEND_STRL (" peak_malloced_memory" ), peak_malloced_memory);
6871
6972 zend_update_property_bool (this_ce, getThis (), ZEND_STRL (" does_zap_garbage" ), does_zap_garbage);
7073}
@@ -139,6 +142,16 @@ static PHP_METHOD(V8HeapStatistics, malloced_memory) {
139142 RETVAL_ZVAL (zend_read_property (this_ce, getThis (), ZEND_STRL (" malloced_memory" ), 0 , &rv), 1 , 0 );
140143}
141144
145+ static PHP_METHOD (V8HeapStatistics, peak_malloced_memory) {
146+ zval rv;
147+
148+ if (zend_parse_parameters_none () == FAILURE) {
149+ return ;
150+ }
151+
152+ RETVAL_ZVAL (zend_read_property (this_ce, getThis (), ZEND_STRL (" peak_malloced_memory" ), 0 , &rv), 1 , 0 );
153+ }
154+
142155static PHP_METHOD (V8HeapStatistics, does_zap_garbage) {
143156 zval rv;
144157
@@ -155,6 +168,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_v8_heap_statistics___construct, ZEND_SEND_BY_VAL,
155168 ZEND_ARG_TYPE_INFO(0 , total_heap_size_executable, IS_DOUBLE, 0 )
156169 ZEND_ARG_TYPE_INFO(0 , total_physical_size, IS_DOUBLE, 0 )
157170 ZEND_ARG_TYPE_INFO(0 , total_available_size, IS_DOUBLE, 0 )
171+
158172 ZEND_ARG_TYPE_INFO(0 , used_heap_size, IS_DOUBLE, 0 )
159173 ZEND_ARG_TYPE_INFO(0 , heap_size_limit, IS_DOUBLE, 0 )
160174 ZEND_ARG_TYPE_INFO(0 , malloced_memory, IS_DOUBLE, 0 )
@@ -184,6 +198,9 @@ ZEND_END_ARG_INFO()
184198ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_heap_statistics__malloced_memory, ZEND_RETURN_VALUE, 0 , IS_DOUBLE, NULL , 0 )
185199ZEND_END_ARG_INFO()
186200
201+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_heap_statistics__peak_malloced_memory, ZEND_RETURN_VALUE, 0 , IS_DOUBLE, NULL , 0 )
202+ ZEND_END_ARG_INFO()
203+
187204ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_v8_heap_statistics__does_zap_garbage, ZEND_RETURN_VALUE, 0 , _IS_BOOL, NULL , 0 )
188205ZEND_END_ARG_INFO()
189206
@@ -198,6 +215,7 @@ static const zend_function_entry php_v8_heap_statistics_methods[] = {
198215 PHP_ME (V8HeapStatistics, used_heap_size, arginfo_v8_heap_statistics__used_heap_size, ZEND_ACC_PUBLIC)
199216 PHP_ME (V8HeapStatistics, heap_size_limit, arginfo_v8_heap_statistics__heap_size_limit, ZEND_ACC_PUBLIC)
200217 PHP_ME (V8HeapStatistics, malloced_memory, arginfo_v8_heap_statistics__malloced_memory, ZEND_ACC_PUBLIC)
218+ PHP_ME (V8HeapStatistics, peak_malloced_memory, arginfo_v8_heap_statistics__peak_malloced_memory, ZEND_ACC_PUBLIC)
201219 PHP_ME (V8HeapStatistics, does_zap_garbage, arginfo_v8_heap_statistics__does_zap_garbage, ZEND_ACC_PUBLIC)
202220
203221 PHP_FE_END
@@ -216,6 +234,7 @@ PHP_MINIT_FUNCTION (php_v8_heap_statistics) {
216234 zend_declare_property_double (this_ce, ZEND_STRL (" used_heap_size" ), 0 , ZEND_ACC_PRIVATE);
217235 zend_declare_property_double (this_ce, ZEND_STRL (" heap_size_limit" ), 0 , ZEND_ACC_PRIVATE);
218236 zend_declare_property_double (this_ce, ZEND_STRL (" malloced_memory" ), 0 , ZEND_ACC_PRIVATE);
237+ zend_declare_property_double (this_ce, ZEND_STRL (" peak_malloced_memory" ), 0 , ZEND_ACC_PRIVATE);
219238
220239 zend_declare_property_bool (this_ce, ZEND_STRL (" does_zap_garbage" ), false , ZEND_ACC_PRIVATE);
221240
0 commit comments