Ich habe eine sehr einfache Rails-Anwendung, die eine Post-Anfrage mit 130 MB im Wert von Bildern auf einmal erhält. Diese Anfragen werden über einen Controller abgewickelt, der einfach mit einem JSON-Objekt antwortet und sagt, dass er die Nachricht erhalten hat. Das ist absolut alles, was ich tue.Ist dies ein Speicherleck?
Ich habe diese App auf einem Heroku-Hobby-Prüfstand eingesetzt. Immer wenn ich eine Anfrage mache, steigt der Speicherverbrauch beträchtlich, oft über die Grenzen meines Prüfstandes hinaus.
Image of the heroku metrics log
ich für Speicher erwarten würde zur Normalität zurück, nachdem die Anforderung empfangen wird und „bearbeitet“ (zumal ich nicht einmal bin mit dem Inhalt empfangen wird).
Kann mir jemand helfen, herauszufinden, was vor sich geht?
Falls es hilft, hier ist ein Code-Snippet des Controllers, der die Anforderung empfängt:
class ImageUploadController < ApplicationController
def create
params["images"].each_with_index do |base64image, index|
# ImageUploadJob.perform_later(base64image, params["imageType"], params["profileID"], index)
end
params = nil
render :json => {'result': 'Image sent for upload'}, :status => :ok
end
Haben Sie versucht, jeweils ein Bild zu senden? Wenn die Größe der Bilder beim Senden 130 MB beträgt, ist die Größe der Ruby-Anwendung aufgrund der Ruby-Objekte, die sie darstellen, wahrscheinlich noch größer. – kcdragon
Danke für deine Antwort, ich kann es versuchen, aber es erklärt immer noch nicht, warum der Speicher nicht freigegeben wird. Es scheint definitiv ein besserer Ansatz zu sein, die Bilder zu senden, wie Sie es vorgeschlagen haben! –