直接在源代码中存储树对象以避免在运行时生长

时间:2014-01-19 17:36:04

标签: c++ optimization tree random-forest

我有50个(大)决策树,当前序列化(按预订)作为单独的长字符串。所有字符串都直接存储在.cpp声明文件中,以避免在运行时从文件中读取它们。因此,在运行时,调用一个函数来反序列化每个字符串,并使用标准递归过程构造其相应的决策树。随后,在每个决策树中放下一组特征(双精度矢量)并输出类预测。随机森林,多数投票,最后一堂课。

我已经尝试优化代码并发现重建这些大树占据了我运行时的大部分(~98%)。因此,我想询问是否有某种方法将整个树对象硬编码到.cpp声明文件中。因此,不必在运行时重新构造树,而是树对象已经可以在运行时遍历。

1 个答案:

答案 0 :(得分:0)

我可以访问C ++ 11,我认为constexpr函数是您的解决方案。

您可以编写函数在编译时生成树的数据,在编译时将数据存储在数组中。

有关工作用法示例,请参阅this thread