ruby - 如何避免同一字符串的多次分配?
问题描述
下面的代码应该(?)根据SamSaffron 的一篇文章和他的pr 分配一个 "prefix:foo" 和一个 "foo" 字符串到 rails。我已经实现了基本相同的技术(带减号),但没有看到任何差异。我正在使用红宝石 2.5.0。2.6也是一样。
简单的玩具示例来说明这一点:
# frozen_string_literal: true
require "memory_profiler"
def remove_prefix(str)
-str.sub(/.*prefix:/, "") # notice '-' here
end
report = MemoryProfiler.report do
str = "prefix:foo"
1000.times do
remove_prefix(str)
end
end
report.pretty_print
结果:
Allocated String Report
-----------------------------------
1000 "foo"
1000 memory.rb:6
1000 "prefix:foo"
1000 memory.rb:6
那个代码有什么问题?或者如何(如果可以)避免对同一字符串进行多次分配?
解决方案
推荐阅读
- javascript - HTML动态表格不显示下拉按钮
- javascript - 在 webpack 中使用导入内联单个 javascript 文件
- system-verilog - 编译同名的verilog包
- nginx - Nginx 代理文件
- ionic-framework - 如何在 ionic 应用程序中本地存储我的计数值?
- python - 如何使用 django 纠正 zmq 地址使用错误
- python - 用scrapy爬取后如何关闭json文件的写入?
- batch-file - 在 windows registery 命令中修剪变量
- java - java web app - 从 MySQL 表中获取结果并在 web 上显示的最佳方式
- node.js - 如何使用 node.js 在 Dropbox api 中共享文件