eXtremeDB_rt/samples/flash-perf/
"flash-perf" measures performance of insert, search, update operations atop of the flash simulator.
mco_system_get_current_time()
printf("Random search : "); fflush(stdout); start_time = msec(); for (i = 0, key = seed; i < nRecords; i++, key = random_sequence(key)) { CHECK(mco_trans_start(db, MCO_READ_ONLY, MCO_TRANS_FOREGROUND, &t)); CHECK(PRecord_pk_index_cursor(t, &c)); CHECK(PRecord_pk_search(t, &c, MCO_EQ, key)); CHECK(PRecord_from_cursor(t, &c, &rec)); CHECK(PRecord_value_get(&rec, &value)); if (value != i) { printf("Unexpected value %u (expected %u)\n", value, i); return MCO_NO; } CHECK(mco_trans_commit(t)); if (i % (nRecords / report_dot) == 0) { printf("."); fflush(stdout); } } printf(" %d searches: %d milliseconds (%d microsecs/search)\n", nRecords, (int)(msec() - start_time), (int)(((msec() - start_time)* 1000) / nRecords));
Insert : .................... 1000 objects: 12 milliseconds,(12 microsecs/object) Random search : .................... 1000 searches: 1 milliseconds (1 microsecs/search) Sequential search : .................... 1000 searches: 1 milliseconds (1 microsecs/search) Random update : .................... 1000 objects: 12 milliseconds (12 microsecs/object) Sequential update : .................... 1000 objects: 1 milliseconds (1 microsecs/object) Random delete : .................... 1000 objects: 16 milliseconds (16 microsecs/object) ------ FLASH statistic (image file <NULL>) ------ FLASH reads : 1559 2 Mb (3 Mb by page) FLASH progs : 16032 31 Mb FLASH erases : 759 94 Mb FLASH copies : 32528 63 Mb FLASH is_free : 0 FLASH is_bad : 1315 FLASH mark_bad : 0 FLASH syncs : 3002 FLASH time : 0 Bad block map : ........... 0 bad blocks