發揮最佳效能

找出瓶頸,提升程式碼效率。

提示詞範例

在對話輸入框輸入提示詞,例如:

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),大幅提升效能。

...