Ruby on rails Ruby设置为存储大量单词并查找
我正在分析字符串,以检查其中是否有地名。这些字符串可以有字母。所以我们提取连续的字母序列,然后检查这些序列是否存在于位置字典中 这部地名语料库词典大约有45000个地名,最小的是2-3个字符,最大的是24个字符 我最初的想法是将它们存储在一个Ruby集合中并使用include?验证PLACES_集合中是否包含序列 此检查地名的方法是从运行非常频繁的活动作业内部调用的 整个ruby集文件大约为908KBRuby on rails Ruby设置为存储大量单词并查找,ruby-on-rails,ruby,data-structures,set,Ruby On Rails,Ruby,Data Structures,Set,我正在分析字符串,以检查其中是否有地名。这些字符串可以有字母。所以我们提取连续的字母序列,然后检查这些序列是否存在于位置字典中 这部地名语料库词典大约有45000个地名,最小的是2-3个字符,最大的是24个字符 我最初的想法是将它们存储在一个Ruby集合中并使用include?验证PLACES_集合中是否包含序列 此检查地名的方法是从运行非常频繁的活动作业内部调用的 整个ruby集文件大约为908KB 从作业中加载如此大的一组数据会对内存产生什么影响?是否有延迟加载的选项?或者手动垃圾收集会有帮
我对性能的建议是保持简单,只有在您实际遇到性能问题时才对性能进行优化。否则,您就有可能优化错误的内容,并使解决方案变得不必要的复杂。您担心今天会加载1MB的文本,而即使是旋转的rust磁盘也可以读取100+MB/s?除非每秒收到数千个请求,并且为每个请求重新加载文件,否则不要担心。在应用程序启动时将其加载到全局状态,您就可以了。使用集合是一个不错的首选。我会用一个Trie来做基准测试。Ruby有本地Trie可用吗?据我所知没有。