Check in benchmark.struct vocab

db4
Doug Coleman 2010-06-10 15:37:53 -05:00
parent 445b43d924
commit 6d63be4168
2 changed files with 32 additions and 0 deletions

View File

@ -0,0 +1 @@
Doug Coleman

View File

@ -0,0 +1,31 @@
! Copyright (C) 2010 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors alien.c-types classes.struct kernel memory
system vm ;
IN: benchmark.struct
STRUCT: benchmark-data
{ time ulonglong }
{ data-room data-heap-room }
{ code-room mark-sweep-sizes } ;
STRUCT: benchmark-data-pair
{ start benchmark-data }
{ stop benchmark-data } ;
: <benchmark-data> ( -- benchmark-data )
\ benchmark-data <struct>
nano-count >>time
code-room >>code-room
data-room >>data-room ; inline
: <benchmark-data-pair> ( start stop -- benchmark-data-pair )
\ benchmark-data-pair <struct>
swap >>stop
swap >>start ; inline
: with-benchmarking ( ... quot -- ... benchmark-data-pair )
<benchmark-data>
[ call ] dip
<benchmark-data> <benchmark-data-pair> ; inline