在Google App Engine的新定價方案下,我得到一個意外定價表,如下所示。減少數據存儲區讀取操作
罪魁禍首是,我得到了巨大的短短几個小時內,在「數據存儲讀取操作」增加了,雖然只有不到50個電話給我DownloadServlet
DownloadServlet將剛纔讀blob(通常小於1 MB),並將其返回給用戶。有什麼我可以做我的代碼優化,以便我不會如此快地達到免費配額限制。
在Google App Engine的新定價方案下,我得到一個意外定價表,如下所示。減少數據存儲區讀取操作
罪魁禍首是,我得到了巨大的短短几個小時內,在「數據存儲讀取操作」增加了,雖然只有不到50個電話給我DownloadServlet
DownloadServlet將剛纔讀blob(通常小於1 MB),並將其返回給用戶。有什麼我可以做我的代碼優化,以便我不會如此快地達到免費配額限制。
您正在進行大量讀取操作,因爲您已將文件分割爲數據存儲區中的1MB塊。因此,您必須對每個塊進行一次讀取,並且由於您沒有使用關鍵字名稱或ID,因此您也正在爲每個塊進行查詢,從而進一步耗盡了您的配額。
將數據存儲在blobstore中。
如果您從數據存儲讀取的數據相對靜態(例如,博客條目的文本),則可以考慮緩存memcache中的數據。
無法保證數據可以保留在內存緩存中的時間有多長,因此您需要定期從數據存儲區重新獲取數據,以防內存緩存中的數據失效,但節省數據存儲區讀取操作將是相當可觀的。
它沒有多大幫助。由於數據是專門針對個人用戶的。我會說<50位用戶,您會看到您的結算開始運行。 –
您應該切換到使用Blobstore,而不是將數據存儲在數據存儲區中作爲Blob。 –
如果沒有看到您的代碼,這或多或少是不可能的。不過,爲什麼不預算一些增加的配額呢? –
@NickJohnson該代碼已發佈。請看「DownloadServlet」的鏈接。 –