2016-11-16 266 views
1

我目前正在開發一款應用程序,該燒瓶網站服務器提供該應用程序。燒瓶應用程序非常緩慢

後端python代碼已經變得非常龐大(對1000行代碼來說,給讀者一個透視圖)和很多依賴關係。

其結果是,即使是簡單的API調用,如本:

@app.route('/', methods = ['GET']) 
def hello(): 
    return "Sample" 

結果採取接近900毫秒的服務請求。

任何人都可以給我提示提高延遲?在這種情況下會爲藍圖幫助嗎?

我們的依賴都是至關重要的(我們也許可以刪除一個或兩個人,但僅此而已)...

任何幫助是極大的讚賞

感謝, Galeej

+1

您只能優化您測量的內容;所以在你做任何事情之前,先準備一些工具來確切地發現_where_問題。 –

+0

您是使用燒瓶開發服務器,還是使用WSGI部署? –

+0

要知道爲什麼事情很慢,你必須測量。花費的時間在哪裏?我懷疑這是你展示的功能。 Flask並不關心其他代碼是什麼(也許可以通過CGI進行部署),所以代碼行並不代表什麼意思(即使1000行代碼不是真的「非常巨大」)。你有WSGI中間件嗎?請求之前的任何代理命中python?時間必須在某個地方度過。 – syntonym

回答

2

Flask是Python的一個微框架。它不是一個Web服務器。

很多原因會導致響應緩慢。 但我不認爲依賴或blueprinting是問題。 如果你可以提供你如何部署你的應用程序,這將是有益的。

我認爲最關鍵和最簡單的事情就是記錄每個主流程的時間戳,然後找出哪個部分的成本很高。

+0

我們已經使用Gevent部署了它。有沒有辦法在gevent中啓用日誌記錄? – galeej

+0

我不熟悉gevent。但是你可以在沒有gevent的情況下啓動一個瓶子守護進程,然後訪問這個方法並檢查響應時間成本。 –