我已经编写了一些谓词来解决大型调度问题,它们工作得很好,但我希望它们有更好的性能。我已经运行了profile/1,我看到的是与CLPFD相关的谓词占用了99%的时间。尤其是garbage_collect --它占用了37%的执行时间。
现在,我能做什么呢?我的代码并不是特别复杂,它使用了很多cumulative/2和一些global_cardinality/2,除此之外没什么特别的。我已经尝试了一些不同的labeling/1选项(ff,ffc,二等分),但没有区别(二等分实际上会让事情变得更糟)。我尝试过使用set_prolog_stack/2提高内存限制(全局限制、本地限制、全局min_free、本地min_free)。
还有什么我能做的吗?
有没有其他的cumulative/2或global_cardinality/2实现可以有更好的性能呢?
https://stackoverflow.com/questions/53489138
复制相似问题