Tag: 不在记忆中

对API响应数据集进行Ruby分页会导致内存峰值

当我浏览API返回的数据集时,我遇到了大量内存峰值的问题。 API返回约150k条记录,我一次请求10k条记录,并翻阅15页数据。 数据是一个散列数组,每个散列包含25个具有~50个字符的字符串值的键。 这个过程杀死了我的512mb Heroku dyno。 我有一个用于分页API响应数据集的方法。 def all_pages value_key = ‘values’, &block response = {} values = [] current_page = 1 total_pages = 1 offset = 0 begin response = yield offset #The following seems to be the culprit values += response[value_key] if response.key? value_key offset = response[‘offset’] total_pages = (response[‘totalResults’].to_f / response[‘limit’].to_f).ceil if […]