Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit c107d85

Browse files
committedJul 8, 2015
Merge remote-tracking branch 'origin' into 1.8.7
2 parents 212718f + 2dcdbb9 commit c107d85

11 files changed

+18
-49
lines changed
 

‎vm/gc/baker.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ namespace rubinius {
4242
, current(heap_a)
4343
, next(heap_b)
4444
, lifetime_(config.gc_young_lifetime)
45-
, diagnostics_(Diagnostics())
45+
, diagnostics_(Diagnostics(bytes_))
4646
{
4747
reset();
4848
}
@@ -60,10 +60,10 @@ namespace rubinius {
6060
diagnostics::Diagnostics::log();
6161

6262
utilities::logger::write("baker: diagnostics: " \
63-
"collections: %ld, " \
63+
"collections: %ld, bytes: %ld" \
6464
"10%%: %ld, 20%%: %ld, 30%%: %ld, 40%%: %ld, 50%%: %ld, " \
6565
"60%%: %ld, 70%%: %ld, 80%%: %ld, 90%%: %ld",
66-
collections_,
66+
collections_, bytes_,
6767
occupancy_histo_[0], occupancy_histo_[1], occupancy_histo_[2],
6868
occupancy_histo_[3], occupancy_histo_[4], occupancy_histo_[5],
6969
occupancy_histo_[6], occupancy_histo_[7], occupancy_histo_[8]);

‎vm/gc/baker.hpp

+3-5
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,13 @@ namespace rubinius {
6262
public:
6363
const static int cPercentTiles = 10;
6464

65+
int64_t bytes_;
6566
int64_t collections_;
6667
int64_t occupancy_histo_[cPercentTiles];
6768

68-
Diagnostics()
69+
Diagnostics(unsigned int bytes)
6970
: diagnostics::Diagnostics()
71+
, bytes_(bytes)
7072
, collections_(0)
7173
{
7274
for(int i = 0; i < cPercentTiles; i++) {
@@ -302,10 +304,6 @@ namespace rubinius {
302304

303305
/// Returns true if the specified object is in the Current space.
304306
bool in_current_p(Object* obj);
305-
306-
double percentage_used() {
307-
return current->percentage_used();
308-
}
309307
};
310308
};
311309

‎vm/gc/immix.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@ namespace rubinius {
6464
: GarbageCollector(om)
6565
, allocator_(gc_.block_allocator())
6666
, marker_(NULL)
67-
, marked_objects_(0)
6867
, chunks_left_(0)
6968
, chunks_before_collection_(10)
7069
, diagnostics_(Diagnostics())

‎vm/gc/immix.hpp

-16
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,6 @@ namespace rubinius {
139139

140140
if(obj->marked_p(object_memory_->mark())) return false;
141141
obj->mark(object_memory_, object_memory_->mark());
142-
gc_->inc_marked_objects();
143142

144143
if(push) ms.push_back(addr);
145144
// If this is a young object, let the GC know not to try and mark
@@ -151,7 +150,6 @@ namespace rubinius {
151150
immix::GC<ObjectDescriber> gc_;
152151
immix::ExpandingAllocator allocator_;
153152
ImmixMarker* marker_;
154-
int marked_objects_;
155153
int chunks_left_;
156154
int chunks_before_collection_;
157155
Diagnostics diagnostics_;
@@ -180,20 +178,6 @@ namespace rubinius {
180178
return gc_.bytes_allocated();
181179
}
182180

183-
void inc_marked_objects() {
184-
marked_objects_++;
185-
}
186-
187-
int marked_objects() {
188-
return marked_objects_;
189-
}
190-
191-
int clear_marked_objects() {
192-
int m = marked_objects_;
193-
marked_objects_ = 0;
194-
return m;
195-
}
196-
197181
int dec_chunks_left() {
198182
return --chunks_left_;
199183
}

‎vm/metrics.cpp

-2
Original file line numberDiff line numberDiff line change
@@ -339,8 +339,6 @@ namespace rubinius {
339339
"memory.young.bytes", metrics_data_.memory.young_bytes));
340340
metrics_map_.push_back(new MetricsItem(
341341
"memory.young.objects", metrics_data_.memory.young_objects));
342-
metrics_map_.push_back(new MetricsItem(
343-
"memory.young.occupancy", metrics_data_.memory.young_occupancy));
344342
metrics_map_.push_back(new MetricsItem(
345343
"memory.immix.bytes", metrics_data_.memory.immix_bytes));
346344
metrics_map_.push_back(new MetricsItem(

‎vm/metrics.hpp

-3
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,6 @@ namespace rubinius {
159159
struct MemoryMetrics {
160160
metric young_bytes;
161161
metric young_objects;
162-
metric young_occupancy;
163162
metric immix_bytes;
164163
metric immix_objects;
165164
metric immix_chunks;
@@ -180,7 +179,6 @@ namespace rubinius {
180179
MemoryMetrics() {
181180
young_bytes = 0;
182181
young_objects = 0;
183-
young_occupancy = 0;
184182
immix_bytes = 0;
185183
immix_objects = 0;
186184
immix_chunks = 0;
@@ -202,7 +200,6 @@ namespace rubinius {
202200
void add(MemoryMetrics& data) {
203201
young_bytes += data.young_bytes;
204202
young_objects += data.young_objects;
205-
young_occupancy += data.young_occupancy;
206203
immix_bytes += data.immix_bytes;
207204
immix_objects += data.immix_objects;
208205
immix_chunks += data.immix_chunks;

‎vm/object_memory.cpp

+11-3
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@
4444
#include "instruments/tooling.hpp"
4545
#include "dtrace/dtrace.h"
4646

47+
#include "util/logger.hpp"
48+
4749
// Used by XMALLOC at the bottom
4850
static long gc_malloc_threshold = 0;
4951
static long bytes_until_collection = 0;
@@ -62,6 +64,15 @@ namespace rubinius {
6264
handles_->diagnostics().log();
6365
code_->diagnostics().log();
6466
symbols_->diagnostics().log();
67+
68+
utilities::logger::write("object memory: diagnostics: total memory: %ld",
69+
baker_->diagnostics().bytes_ +
70+
immix_->diagnostics().bytes_ +
71+
mark_sweep_->diagnostics().bytes_ +
72+
headers_->diagnostics().bytes_ +
73+
handles_->diagnostics().bytes_ +
74+
code_->diagnostics().bytes_ +
75+
symbols_->diagnostics().bytes_);
6576
}
6677

6778
/* ObjectMemory methods */
@@ -535,9 +546,6 @@ namespace rubinius {
535546
collect_young(state, &gc_data);
536547
#endif
537548
RUBINIUS_GC_END(0);
538-
539-
metrics::MetricsData& metrics = state->vm()->metrics();
540-
metrics.memory.young_occupancy += young_->percentage_used();
541549
}
542550

543551
if(collect_mature_now) {

‎vm/shared_state.cpp

-6
Original file line numberDiff line numberDiff line change
@@ -108,12 +108,6 @@ namespace rubinius {
108108
delete internal_threads_;
109109
}
110110

111-
int SharedState::size() {
112-
return sizeof(SharedState) +
113-
sizeof(WorldState) +
114-
symbols.bytes_used();
115-
}
116-
117111
uint32_t SharedState::new_thread_id() {
118112
return atomic::fetch_and_add(&thread_ids_, 1);
119113
}

‎vm/symbol_table.cpp

-2
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,6 @@ namespace rubinius {
8181
diagnostics_.bytes_ += bytes;
8282
diagnostics_.modify();
8383

84-
bytes_used_ += bytes;
85-
8684
strings.push_back(str);
8785
kinds.push_back(eUnknown);
8886

‎vm/symbol_table.hpp

+1-7
Original file line numberDiff line numberDiff line change
@@ -71,14 +71,12 @@ namespace rubinius {
7171
SymbolStrings strings;
7272
SymbolKinds kinds;
7373
utilities::thread::SpinLock lock_;
74-
size_t bytes_used_;
7574
Diagnostics diagnostics_;
7675

7776
public:
7877

7978
SymbolTable()
80-
: bytes_used_(0)
81-
, diagnostics_(Diagnostics())
79+
: diagnostics_(Diagnostics())
8280
{
8381
lock_.init();
8482
}
@@ -87,10 +85,6 @@ namespace rubinius {
8785
return diagnostics_;
8886
}
8987

90-
size_t& bytes_used() {
91-
return bytes_used_;
92-
}
93-
9488
size_t size() {
9589
return symbols.size();
9690
};

‎vm/test/test_symbol.hpp

-1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,5 @@ class TestSymbol : public CxxTest::TestSuite, public VMTest {
2929
Array* symbols = Symbol::all_symbols(state);
3030

3131
TS_ASSERT(kind_of<Array>(symbols));
32-
TS_ASSERT(state->shared().symbols.bytes_used() > 0);
3332
}
3433
};

0 commit comments

Comments
 (0)
Please sign in to comment.