面试题答案
一键面试优化策略
- 内存管理:
- 逐行读取文件,而不是一次性加载整个文件到内存。
- 及时释放不再使用的内存,比如解析完一部分数据后,释放相关的对象。
- 解析方式选择:
- 使用
JSON::Stream
库,它支持流式解析,不会一次性将整个 JSON 数据加载到内存。
- 使用
代码示例框架
require 'json/stream'
file_path = 'large_file.json'
JSON::Stream::Parser.new do |parser|
parser.on_parse do |obj|
# 在这里处理解析出来的对象 obj
# 比如进行数据的清洗、转换等操作
end
end.parse(File.open(file_path, 'r'))