[英]What is the big O notation here and how do I figure it out?
這個數組中有 1805 個元素。 我正在遍歷它們中的每一個並輸出 ID 並銷毀跟隨者。
我如何在這里找到大 O 符號?
更好更快的選擇是使用 followers.destroy_all 嗎?
followers.each { |f| puts f.id; f.destroy! };
當您查看destroy_all
的源代碼時,您會注意到它基本上與您的示例相同。 它遍歷關系中的所有記錄並調用destroy
它們中的每一個。 我希望它仍然比您的版本快一點,因為調用puts
不是免費的。 但是兩個版本都是O(n)
如果可能的話,您可能想使用delete_all
,它不會將所有記錄加載到 memory 中,也不會在每個元素上調用destroy
。 相反,它會刪除與單個 SQL 查詢相關的所有記錄,這使得該方法比destroy_all
更快。 但當然delete_all
不會觸發回調,因此可能對您不起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.