小编use*_*027的帖子

26
推荐指数
3
解决办法
3万
查看次数

PHP加速器与即时编译

来自维基百科:

大多数PHP加速器通过缓存PHP脚本的编译字节码来工作,以避免在每个请求上解析和编译源代码的开销(其中一些或全部甚至可能永远不会被执行).为了进一步提高性能,缓存的代码存储在共享内存中并直接从那里执行,从而最大限度地减少了运行时缓慢的磁盘读取和内存复制的数量.

及时编译:

JIT编译器代表了一种混合方法,与解释器一样,翻译不断发生,但是通过缓存已翻译的代码来最小化性能下降.

所以在PHP上使用PHP加速器如APC对"即时"编译PHP的性能有相同的影响(假设它可以这样做)....实际上它们实际上是同一个东西吗?

php compiler-construction accelerator

5
推荐指数
1
解决办法
4702
查看次数

在c ++中清除堆栈中分配的内存

我使用递归算法在c ++中实现了一个国际象棋机器人,该程序每次移动评估超过一百万个节点.

随着时间的推移,它占用的内存超过1 GIG的RAM ......

但我真的不需要在完成移动后先前声明的变量......

那么如何手动刷新堆栈内存以摆脱堆栈上先前声明的变量,就像java的垃圾收集器一样?

UPDATE

我发现我的来源中有这一行:

Move * M = new Move(x1,y1,x2,y2);

pair <Move *, Piece *> pr (M,aPiece);
Run Code Online (Sandbox Code Playgroud)

并且它在执行移动函数中,在递归中被称为百万次...

我的问题是,一旦完成所有递归并且我不再需要这个变量,你将如何清除这样的变量,但是当递归正在做它的事情时,我需要该变量留在内存中?

c++ memory recursion stack memory-management

1
推荐指数
1
解决办法
3864
查看次数