示例#1
0
def _custom(trace: ProcessedTrace) -> None:
    gen2_gcs = [gc for gc in trace.gcs if gc.IsGen2]
    datas: List[_GCData] = []
    for gc in gen2_gcs:
        bytes_since_last_same_gen_gc = (unwrap(
            get_bytes_allocated_since_last_gc(trace.gcs, trace.gcs.index(gc),
                                              Gens.GenLargeObj))
                                        if gc.IsGen2 else None)

        datas.append(
            _GCData(
                Number=gc.Number,
                MBSOHSinceLastGen2=bytes_to_mb(
                    unwrap(
                        get_bytes_allocated_since_last_gc(
                            trace.gcs, trace.gcs.index(gc), Gens.Gen2)))
                if gc.IsGen2 else None,
                MBLOHSinceLastGen2=bytes_to_mb(
                    non_null(bytes_since_last_same_gen_gc))
                if gc.IsGen2 else None,
                Gen2BudgetMB=gc.Gen2BudgetMB if gc.IsGen2 else None,
                LOHBudgetMB=gc.LOHBudgetMB if gc.IsGen2 else None,
            ))

    rows = []
    for data in datas:
        rows.append([
            Cell(str(int(x))) if x is not None else Cell() for x in (
                data.Number,
                data.MBSOHSinceLastGen2,
                data.MBLOHSinceLastGen2,
                data.Gen2BudgetMB,
                data.LOHBudgetMB,
            )
        ])

    g2_numbers = ", ".join(str(gc.Number) for gc in gen2_gcs)
    gens = f"Gen2 numbers are: {g2_numbers}"

    doc = single_table_document(
        Table(
            text=gens,
            headers=(
                "number",
                "MB on SOH since last gen2",
                "MB on LOH since last gen2",
                "gen2 budget MB",
                "loh budget MB",
            ),
            rows=rows,
        ))
    handle_doc(doc)
示例#2
0
def get_trace_with_everything(path: Path,
                              process: ProcessQuery = None,
                              dont_cache: bool = False) -> ProcessedTrace:
    return unwrap(
        ALL_TRACES.get(
            test_result=test_result_from_path(path, process),
            # TODO: disabling mechanisms and join info for now
            # as it doesn't work without updating TraceEvent
            need_mechanisms_and_reasons=False,
            need_join_info=False,
            dont_cache=dont_cache,
        ))