src/share/vm/oops/constMethod.cpp
Print this page
@@ -1,7 +1,7 @@
/*
- * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
@@ -23,10 +23,11 @@
*/
#include "precompiled.hpp"
#include "interpreter/interpreter.hpp"
#include "memory/gcLocker.hpp"
+#include "memory/heapInspection.hpp"
#include "memory/metadataFactory.hpp"
#include "oops/constMethod.hpp"
#include "oops/method.hpp"
// Static initialization
@@ -328,10 +329,22 @@
assert(is_constMethod(), "must be constMethod");
st->print(" const part of method " );
method()->print_value_on(st);
}
+#if INCLUDE_SERVICES
+// Size Statistics
+void ConstMethod::collect_statistics(KlassSizeStats *sz) const {
+ int n1, n2, n3;
+ sz->_const_method_bytes += (n1 = sz->count(this));
+ sz->_bytecode_bytes += (n2 = code_size());
+ sz->_stackmap_bytes += (n3 = sz->count_array(stackmap_data()));
+
+ sz->_method_all_bytes += n1 + n3; // note: n2 is part of n3
+ sz->_ro_bytes += n1 + n3;
+}
+#endif // INCLUDE_SERVICES
// Verification
void ConstMethod::verify_on(outputStream* st) {
guarantee(is_constMethod(), "object must be constMethod");