diff --git a/obj/tools/MGtool/prof.h b/obj/tools/MGtool/prof.h
new file mode 100644
index 0000000..05dcebf
--- /dev/null
+++ b/obj/tools/MGtool/prof.h
@@ -0,0 +1,42 @@
+private mixed __tm__=({0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0});
+private mixed __xtm__=({0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0});
+private mixed  __ec__=({0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0});
+private mixed  __xec__=({0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0});
+private int __level__;
+private mapping __data__ = ([]);
+__query_xprof_data__() { return __data__; }
+#define U2T(ru) (((ru)[0]+(ru)[1])*10)
+#define EC1 40
+#define EC2 22
+#define EC3 150
+#define TM1 0
+#define TM2 0
+#define TM3 0
+#define F(func,name,args) func args { \
+  mixed *__dt__, *__ru__, __re__; \
+  int __t__; \
+  if(!__data__) return :: func args; \
+  __ru__=rusage(); \
+  __tm__[__level__]=(__t__=U2T(__ru__))<0?0:__t__; \
+  __xtm__[__level__]=TM1; __tm__[__level__+1]=0; \
+  __ec__[__level__]=get_eval_cost(); \
+  __xec__[__level__]=EC1; __ec__[__level__+1]=0; \
+  __level__++; __re__ = :: func args; __level__--; \
+  if(!(__dt__=__data__[name])) { \
+    __dt__=__data__[name]=({0,0,0,0,0}); \
+    __xtm__[__level__]+=TM2; __xec__[__level__]+=EC2; \
+  } \
+  __ec__[__level__]-=get_eval_cost()+__xec__[__level__]; \
+  __ru__=rusage(); \
+  __t__=(__t__=U2T(__ru__))<0?0:__t__; \
+  __tm__[__level__]=__t__-__tm__[__level__]-__xtm__[__level__]; \
+  __dt__[0]++; \
+  __dt__[1]+=__ec__[__level__]-__ec__[__level__+1]; \
+  __dt__[2]+=__tm__[__level__]-__tm__[__level__+1]; \
+  __dt__[3]+=__ec__[__level__]; __dt__[4]+=__tm__[__level__]; \
+  if(__level__>0) { \
+    __xec__[__level__-1]+=__xec__[__level__]+EC3; \
+    __xtm__[__level__-1]+=__xtm__[__level__]+TM3; \
+  } \
+  return __re__; \
+}
