我正在将 Haxe 用于游戏,并使用 HXCPP 编译 C++ 目标。我试图让内置分析器工作(cpp.vm.Profiler
),但我无法让它创建转储文件。我的代码就这么简单:
if(Input.check(Key.P))
cpp.vm.Profiler.start("profiler.txt");
if(Input.check(Key.M))
cpp.vm.Profiler.stop();
我使用 HaxePunk 作为输入,并且断言探查器调用确实正在执行(我确保使用了几个 trace
调用)。我使用定义 HXCPP_STACK_TRACE
和 HXCPP_PROFILER
进行编译。
我做错了什么,或者遗漏了什么吗?
编辑:这是一些使用haxe -D HXCPP_PROFILER -D HXCPP_STACK_TRACE -main Main -cpp test
编译时的代码,实际上并没有创建任何明显的“profiler.txt”文件:
class Main
{
static public function main()
{
var bleh = haxe.Timer.stamp();
cpp.vm.Profiler.start("profiler.txt");
while(haxe.Timer.stamp() - bleh < 5.)
{
// Do something I guess
Math.cos(haxe.Timer.stamp());
}
cpp.vm.Profiler.stop();
}
}
最佳答案
给hxcpp的相关bug报告:#580 .
显然,此问题已于 2017 年 5 月 17 日在 this commit 中修复。 。修复应该在 3.4.64 之后的下一个 hxcpp 版本中。
关于profiling - HXCPP Profiler不会创建日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41836910/