上周我在C#中写了几行代码,将一个大文本文件(300,000行)激活到一个Dictionary中.编写花了十分钟,并在不到一秒的时间内执行.
现在我将这段代码转换为C++(因为我需要在旧的C++ COM对象中).到目前为止,我已经花了两天时间.:-(虽然生产力差异本身令人震惊,但这是我需要一些建议的表现.
加载需要7秒钟,甚至更糟糕的是:之后需要花费很多时间来释放所有CStringW.这是不可接受的,我必须找到一种方法来提高性能.
有没有机会我可以分配这么多字符串而不会看到这种可怕的性能退化?
我现在的猜测是,我必须将所有文本填充到一个大型数组中,然后让我的哈希表指向此数组中每个字符串的开头并删除CStringW内容.
但在那之前,你有C++专家的建议吗?
编辑:我给自己的答案如下.我意识到这对我来说是最快的路径,也是我认为正确的方向 - 更多托管代码.
忽略变量的类型,表达式a=b=c
是否已在C和C++中定义了行为?
如果是的话,任何人都可以给我官方证据,比如标准中的引号吗?
PS我搜索了链接的任务,但我得到的是关联性,但我没有在C99标准中找到任何关于它的文本.也许我做错了?希望有人能帮助我.