Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用预先分配的内存实现trie?_C++_Algorithm_Full Text Search_Trie_Low Latency - Fatal编程技术网

C++ 如何使用预先分配的内存实现trie?

C++ 如何使用预先分配的内存实现trie?,c++,algorithm,full-text-search,trie,low-latency,C++,Algorithm,Full Text Search,Trie,Low Latency,我想在低延迟应用程序中使用TRIE来搜索25到60个字符之间的字符串。 字符串将包含英文字母大写和数字 动态使用malloc创建trie节点效率不高 最好知道是否有使用内存池等的现有实现。。。一旦预先分配的内存池溢出,我们需要在极端事件中创建另一个内存池来处理。固定大小分配+newtoo slow=简单池分配器。这“明显”是怎么回事?你分析过它吗?是的,不是在trie上,而是在其他数据结构上,它们动态获取内存而不是预先分配内存。使用预先分配的内存,结果要好得多。我们致力于极低延迟的应用程序,其中

我想在低延迟应用程序中使用TRIE来搜索25到60个字符之间的字符串。 字符串将包含英文字母大写和数字

动态使用malloc创建trie节点效率不高


最好知道是否有使用内存池等的现有实现。。。一旦预先分配的内存池溢出,我们需要在极端事件中创建另一个内存池来处理。

固定大小分配+
new
too slow=简单池分配器。这“明显”是怎么回事?你分析过它吗?是的,不是在trie上,而是在其他数据结构上,它们动态获取内存而不是预先分配内存。使用预先分配的内存,结果要好得多。我们致力于极低延迟的应用程序,其中有一节探讨了使用普通的旧数组(无指针)实现链表。这可以扩展到任何链接的数据结构,如树或树。我相信这是一个非常有趣但极具挑战性的探索选择。您甚至可以调整实现的大小(您只需要在trie增长过大时调整数组的大小,从而很少产生分配开销)。