[英]Django large variable storage
場景:我有一個Networkx網絡,它具有大約120.000個邊緣,每次用戶請求頁面或單擊頁面上的某些內容時,都需要查詢該網絡,因此會有很多呼叫。
我可以加載和解析每個呼叫的網絡,但這會浪費時間,因為每次都需要4秒鍾左右(不包括查詢)。
我希望可以將此網絡對象(靜態)存儲在全局某個位置,並在需要時查詢它,但是我找不到一種簡單的方法。 將所有邊緣都放在數據庫中不是一個選擇,因為它不會消除解析所需的時間。
您可以簡單地將其安裝為全局變量。 調用將其加載到模塊級上下文中的函數,並在需要時import
該模塊(或使用在首次訪問時加載該模塊的單例模式,但這基本上是相同的)。
如果希望即時更改內容,則永遠不要在Web應用程序中使用全局變量,但是對於靜態內容,它們沒有任何問題。
請注意,如果將導入放入函數中,則該導入將在該函數運行時首次運行,這意味着有人在重新啟動后首次訪問特定服務器時,他們將必須等待數據裝載。 如果您改為將導入放置在模塊級上下文中,以便在應用程序啟動時加載它,那么您的應用程序將首先花費四秒鍾(或其他時間)才能開始。 您必須選擇這兩個性能命中之一-后者對用戶可能更友善。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.