Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: rubinius/rubinius
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 5e2f09510a4b
Choose a base ref
...
head repository: rubinius/rubinius
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 2dcdbb9b1ffa
Choose a head ref
  • 2 commits
  • 11 files changed
  • 1 contributor

Commits on Jul 8, 2015

  1. Copy the full SHA
    9519b65 View commit details
  2. Copy the full SHA
    2dcdbb9 View commit details
Showing with 18 additions and 49 deletions.
  1. +3 −3 vm/gc/baker.cpp
  2. +3 −5 vm/gc/baker.hpp
  3. +0 −1 vm/gc/immix.cpp
  4. +0 −16 vm/gc/immix.hpp
  5. +0 −2 vm/metrics.cpp
  6. +0 −3 vm/metrics.hpp
  7. +11 −3 vm/object_memory.cpp
  8. +0 −6 vm/shared_state.cpp
  9. +0 −2 vm/symbol_table.cpp
  10. +1 −7 vm/symbol_table.hpp
  11. +0 −1 vm/test/test_symbol.hpp
6 changes: 3 additions & 3 deletions vm/gc/baker.cpp
Original file line number Diff line number Diff line change
@@ -42,7 +42,7 @@ namespace rubinius {
, current(heap_a)
, next(heap_b)
, lifetime_(config.gc_young_lifetime)
, diagnostics_(Diagnostics())
, diagnostics_(Diagnostics(bytes_))
{
reset();
}
@@ -60,10 +60,10 @@ namespace rubinius {
diagnostics::Diagnostics::log();

utilities::logger::write("baker: diagnostics: " \
"collections: %ld, " \
"collections: %ld, bytes: %ld" \
"10%%: %ld, 20%%: %ld, 30%%: %ld, 40%%: %ld, 50%%: %ld, " \
"60%%: %ld, 70%%: %ld, 80%%: %ld, 90%%: %ld",
collections_,
collections_, bytes_,
occupancy_histo_[0], occupancy_histo_[1], occupancy_histo_[2],
occupancy_histo_[3], occupancy_histo_[4], occupancy_histo_[5],
occupancy_histo_[6], occupancy_histo_[7], occupancy_histo_[8]);
8 changes: 3 additions & 5 deletions vm/gc/baker.hpp
Original file line number Diff line number Diff line change
@@ -62,11 +62,13 @@ namespace rubinius {
public:
const static int cPercentTiles = 10;

int64_t bytes_;
int64_t collections_;
int64_t occupancy_histo_[cPercentTiles];

Diagnostics()
Diagnostics(unsigned int bytes)
: diagnostics::Diagnostics()
, bytes_(bytes)
, collections_(0)
{
for(int i = 0; i < cPercentTiles; i++) {
@@ -302,10 +304,6 @@ namespace rubinius {

/// Returns true if the specified object is in the Current space.
bool in_current_p(Object* obj);

double percentage_used() {
return current->percentage_used();
}
};
};

1 change: 0 additions & 1 deletion vm/gc/immix.cpp
Original file line number Diff line number Diff line change
@@ -64,7 +64,6 @@ namespace rubinius {
: GarbageCollector(om)
, allocator_(gc_.block_allocator())
, marker_(NULL)
, marked_objects_(0)
, chunks_left_(0)
, chunks_before_collection_(10)
, diagnostics_(Diagnostics())
16 changes: 0 additions & 16 deletions vm/gc/immix.hpp
Original file line number Diff line number Diff line change
@@ -139,7 +139,6 @@ namespace rubinius {

if(obj->marked_p(object_memory_->mark())) return false;
obj->mark(object_memory_, object_memory_->mark());
gc_->inc_marked_objects();

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

void inc_marked_objects() {
marked_objects_++;
}

int marked_objects() {
return marked_objects_;
}

int clear_marked_objects() {
int m = marked_objects_;
marked_objects_ = 0;
return m;
}

int dec_chunks_left() {
return --chunks_left_;
}
2 changes: 0 additions & 2 deletions vm/metrics.cpp
Original file line number Diff line number Diff line change
@@ -339,8 +339,6 @@ namespace rubinius {
"memory.young.bytes", metrics_data_.memory.young_bytes));
metrics_map_.push_back(new MetricsItem(
"memory.young.objects", metrics_data_.memory.young_objects));
metrics_map_.push_back(new MetricsItem(
"memory.young.occupancy", metrics_data_.memory.young_occupancy));
metrics_map_.push_back(new MetricsItem(
"memory.immix.bytes", metrics_data_.memory.immix_bytes));
metrics_map_.push_back(new MetricsItem(
3 changes: 0 additions & 3 deletions vm/metrics.hpp
Original file line number Diff line number Diff line change
@@ -159,7 +159,6 @@ namespace rubinius {
struct MemoryMetrics {
metric young_bytes;
metric young_objects;
metric young_occupancy;
metric immix_bytes;
metric immix_objects;
metric immix_chunks;
@@ -180,7 +179,6 @@ namespace rubinius {
MemoryMetrics() {
young_bytes = 0;
young_objects = 0;
young_occupancy = 0;
immix_bytes = 0;
immix_objects = 0;
immix_chunks = 0;
@@ -202,7 +200,6 @@ namespace rubinius {
void add(MemoryMetrics& data) {
young_bytes += data.young_bytes;
young_objects += data.young_objects;
young_occupancy += data.young_occupancy;
immix_bytes += data.immix_bytes;
immix_objects += data.immix_objects;
immix_chunks += data.immix_chunks;
14 changes: 11 additions & 3 deletions vm/object_memory.cpp
Original file line number Diff line number Diff line change
@@ -44,6 +44,8 @@
#include "instruments/tooling.hpp"
#include "dtrace/dtrace.h"

#include "util/logger.hpp"

// Used by XMALLOC at the bottom
static long gc_malloc_threshold = 0;
static long bytes_until_collection = 0;
@@ -62,6 +64,15 @@ namespace rubinius {
handles_->diagnostics().log();
code_->diagnostics().log();
symbols_->diagnostics().log();

utilities::logger::write("object memory: diagnostics: total memory: %ld",
baker_->diagnostics().bytes_ +
immix_->diagnostics().bytes_ +
mark_sweep_->diagnostics().bytes_ +
headers_->diagnostics().bytes_ +
handles_->diagnostics().bytes_ +
code_->diagnostics().bytes_ +
symbols_->diagnostics().bytes_);
}

/* ObjectMemory methods */
@@ -535,9 +546,6 @@ namespace rubinius {
collect_young(state, &gc_data);
#endif
RUBINIUS_GC_END(0);

metrics::MetricsData& metrics = state->vm()->metrics();
metrics.memory.young_occupancy += young_->percentage_used();
}

if(collect_mature_now) {
6 changes: 0 additions & 6 deletions vm/shared_state.cpp
Original file line number Diff line number Diff line change
@@ -103,12 +103,6 @@ namespace rubinius {
delete internal_threads_;
}

int SharedState::size() {
return sizeof(SharedState) +
sizeof(WorldState) +
symbols.bytes_used();
}

uint32_t SharedState::new_thread_id() {
return atomic::fetch_and_add(&thread_ids_, 1);
}
2 changes: 0 additions & 2 deletions vm/symbol_table.cpp
Original file line number Diff line number Diff line change
@@ -99,8 +99,6 @@ namespace rubinius {
diagnostics_.bytes_ += bytes;
diagnostics_.modify();

bytes_used_ += bytes;

strings.push_back(str);
encodings.push_back(enc);
kinds.push_back(eUnknown);
8 changes: 1 addition & 7 deletions vm/symbol_table.hpp
Original file line number Diff line number Diff line change
@@ -73,14 +73,12 @@ namespace rubinius {
SymbolEncodings encodings;
SymbolKinds kinds;
utilities::thread::SpinLock lock_;
size_t bytes_used_;
Diagnostics diagnostics_;

public:

SymbolTable()
: bytes_used_(0)
, diagnostics_(Diagnostics())
: diagnostics_(Diagnostics())
{
lock_.init();
}
@@ -89,10 +87,6 @@ namespace rubinius {
return diagnostics_;
}

size_t& bytes_used() {
return bytes_used_;
}

size_t size() {
return symbols.size();
};
1 change: 0 additions & 1 deletion vm/test/test_symbol.hpp
Original file line number Diff line number Diff line change
@@ -29,6 +29,5 @@ class TestSymbol : public CxxTest::TestSuite, public VMTest {
Array* symbols = Symbol::all_symbols(state);

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