找出瓶頸,提升程式碼效率。
提示詞範例
在對話輸入框輸入提示詞,例如:
Analyze this code snippet for potential performance bottlenecks. Can you
suggest alternative data structures or algorithms that might be more efficient?
輸出範例
Gemini Enterprise 會根據這則提示,產生類似下列內容的輸出:
當然可以。我可以幫你分析這段程式碼,並建議更有效率的替代方案。
成效分析
find_matching_users函式的主要效能瓶頸在於這一行:if user in all_users:如果
all_users是清單,檢查元素 (user in all_users) 是否存在時,必須逐一檢查清單,直到找到相符項目為止。在最壞的情況下,這項作業的時間複雜度為 O(n),其中「n」是all_users中的項目數量。由於系統會針對
users_to_check中的每個user執行這項檢查 (假設有「m」個項目),因此函式的總時間複雜度會變成 O(n * m)。如果兩個清單都很大,效率可能會非常低。
建議的替代方案
以下介紹兩種更有效率的做法。
1. 轉換為集合以加快查詢速度
將
all_users轉換為set,可大幅加快查詢程序。平均而言,檢查集合中是否存在某個元素是 O(1) 作業。這會將整體時間複雜度降低至大約 O(n + m),大幅提升效能。
...