#!/usr/bin/env python3 import common class Main(common.LkmcCliFunction): def __init__(self): super().__init__( defaults={ 'emulator': 'gem5', 'show_time': False, }, description='''\ Convert a BST vs heap stat file into a gnuplot input https://cirosantilli.com/linux-kernel-module-cheat#bst-vs-heap-vs-hashmap ''', ) def timed_main(self): stats = self.get_stats() it = iter(stats) i = 1 for heap_num_cycles in it: try: bst_num_cycles = next(it) hashmap_num_cycles = next(it) except StopIteration: # Automatic dumpstats at end may lead to one extra stat at the end. break print('{} {} {} {}'.format( i, heap_num_cycles, bst_num_cycles, hashmap_num_cycles, )) i += 1 if __name__ == '__main__': Main().cli()