mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-06 13:58:40 +00:00
print sizes in telemetry mark up in GSI build step
This commit is contained in:
@@ -2131,55 +2131,57 @@ gsi_release(PDB_GsiContext **gsi_ptr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
internal void
|
internal void
|
||||||
gsi_write_build_result(TP_Context *tp, PDB_GsiBuildResult build, MSF_Context *msf, MSF_StreamNumber gsi_sn, MSF_StreamNumber symbols_sn)
|
gsi_write_build_result(TP_Context *tp,
|
||||||
|
PDB_GsiBuildResult build,
|
||||||
|
MSF_Context *msf,
|
||||||
|
MSF_StreamNumber gsi_sn,
|
||||||
|
MSF_StreamNumber symbols_sn)
|
||||||
{
|
{
|
||||||
ProfBeginFunction();
|
ProfBeginFunction();
|
||||||
|
|
||||||
// reserve stream memory
|
|
||||||
U64 hash_record_arr_size = sizeof(build.hash_record_arr[0]) * build.hash_record_count;
|
U64 hash_record_arr_size = sizeof(build.hash_record_arr[0]) * build.hash_record_count;
|
||||||
U64 bitmap_size = sizeof(build.bitmap[0]) * build.bitmap_count;
|
U64 bitmap_size = sizeof(build.bitmap[0]) * build.bitmap_count;
|
||||||
U64 compressed_bucket_arr_size = sizeof(build.compressed_bucket_arr[0]) * build.compressed_bucket_count;
|
U64 compressed_bucket_arr_size = sizeof(build.compressed_bucket_arr[0]) * build.compressed_bucket_count;
|
||||||
U64 gsi_size = sizeof(build.header) + hash_record_arr_size + bitmap_size + compressed_bucket_arr_size;
|
U64 gsi_size = sizeof(build.header) + hash_record_arr_size + bitmap_size + compressed_bucket_arr_size;
|
||||||
|
|
||||||
ProfBegin("GSI Reserve");
|
ProfBeginV("Reserve %M for GSI hash table", gsi_size);
|
||||||
msf_stream_reserve(msf, gsi_sn, gsi_size);
|
msf_stream_reserve(msf, gsi_sn, gsi_size);
|
||||||
ProfEnd();
|
ProfEnd();
|
||||||
|
|
||||||
ProfBegin("Symbol Data Reserve");
|
ProfBeginV("Reserve %M for symbols", build.symbol_data.size);
|
||||||
msf_stream_reserve(msf, symbols_sn, build.symbol_data.size);
|
msf_stream_reserve(msf, symbols_sn, build.symbol_data.size);
|
||||||
ProfEnd();
|
ProfEnd();
|
||||||
|
|
||||||
// write gsi stream
|
ProfBegin("Write GSI header");
|
||||||
msf_stream_write_struct(msf, gsi_sn, &build.header);
|
msf_stream_write_struct(msf, gsi_sn, &build.header);
|
||||||
|
ProfEnd();
|
||||||
|
|
||||||
ProfBegin("Hash Record Write");
|
ProfBegin("Write hash records [%M]", hash_record_arr_size);
|
||||||
msf_stream_write_parallel(tp, msf, gsi_sn, &build.hash_record_arr[0], hash_record_arr_size);
|
msf_stream_write_parallel(tp, msf, gsi_sn, &build.hash_record_arr[0], hash_record_arr_size);
|
||||||
ProfEnd();
|
ProfEnd();
|
||||||
|
|
||||||
ProfBegin("Bitmap Write");
|
ProfBeginV("Write bucket bitmap [%M]", bitmap_size);
|
||||||
msf_stream_write(msf, gsi_sn, &build.bitmap[0], bitmap_size);
|
msf_stream_write(msf, gsi_sn, &build.bitmap[0], bitmap_size);
|
||||||
ProfEnd();
|
ProfEnd();
|
||||||
|
|
||||||
ProfBegin("Compressed Bucket Write");
|
ProfBegin("Write buckets [%M]", compressed_bucket_arr-size);
|
||||||
msf_stream_write(msf, gsi_sn, &build.compressed_bucket_arr[0], compressed_bucket_arr_size);
|
msf_stream_write(msf, gsi_sn, &build.compressed_bucket_arr[0], compressed_bucket_arr_size);
|
||||||
ProfEnd();
|
ProfEnd();
|
||||||
|
|
||||||
// write symbol stream
|
ProfBegin("Write symbols [%M]", build.symbol_data.size);
|
||||||
ProfBegin("Symbol Data Write");
|
|
||||||
msf_stream_write_string_parallel(tp, msf, symbols_sn, build.symbol_data);
|
msf_stream_write_string_parallel(tp, msf, symbols_sn, build.symbol_data);
|
||||||
ProfEnd();
|
ProfEnd();
|
||||||
|
|
||||||
ProfEnd();
|
ProfEnd();
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
internal int
|
||||||
gsi_hash_record_compar_is_before(void *a_, void *b_)
|
gsi_hash_record_compar_is_before(void *raw_a, void *raw_b)
|
||||||
{
|
{
|
||||||
PDB_GsiSortRecord *a = (PDB_GsiSortRecord*)a_;
|
PDB_GsiSortRecord *a = raw_a;
|
||||||
PDB_GsiSortRecord *b = (PDB_GsiSortRecord*)b_;
|
PDB_GsiSortRecord *b = raw_b;
|
||||||
|
|
||||||
int is_before;
|
int is_before;
|
||||||
|
|
||||||
if (a->name.size != b->name.size) {
|
if (a->name.size != b->name.size) {
|
||||||
is_before = a->name.size < b->name.size;
|
is_before = a->name.size < b->name.size;
|
||||||
} else {
|
} else {
|
||||||
@@ -2193,20 +2195,19 @@ gsi_hash_record_compar_is_before(void *a_, void *b_)
|
|||||||
return is_before;
|
return is_before;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
internal int
|
||||||
psi_addr_map_compar_is_before(void *a_, void *b_)
|
psi_addr_map_compar_is_before(void *raw_a, void *raw_b)
|
||||||
{
|
{
|
||||||
PDB_GsiSortRecord *a = (PDB_GsiSortRecord*)a_;
|
PDB_GsiSortRecord *a = raw_a;
|
||||||
PDB_GsiSortRecord *b = (PDB_GsiSortRecord*)b_;
|
PDB_GsiSortRecord *b = raw_b;
|
||||||
|
|
||||||
int is_before;
|
int is_before;
|
||||||
|
|
||||||
if (a->isect_off.isect != b->isect_off.isect) {
|
if (a->isect_off.isect != b->isect_off.isect) {
|
||||||
is_before = a->isect_off.isect < b->isect_off.isect;
|
is_before = a->isect_off.isect < b->isect_off.isect;
|
||||||
} else if (a->isect_off.off != b->isect_off.off) {
|
} else if (a->isect_off.off != b->isect_off.off) {
|
||||||
is_before = a->isect_off.off < b->isect_off.off;
|
is_before = a->isect_off.off < b->isect_off.off;
|
||||||
} else {
|
} else {
|
||||||
is_before = a->name.size < b->name.size;
|
is_before = str8_compar_case_sensitive(&a->name, &b->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
return is_before;
|
return is_before;
|
||||||
|
|||||||
Reference in New Issue
Block a user