我剛想回覆一個帖子就看到了@tx尼爾森已經做出了同樣的回應(有驚喜!)。 我想對這個回應表示“讚揚”,但別無選擇。 有一個選項可以給“帖子”(即問題)點贊,但這對我來說意義不大。 我錯過了什麼嗎?
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />儲存到資料庫太慢(每分鐘 10k 筆記錄)有回覆姆夏普這讓我想起了 JMP 13 計劃的性能增強。(感謝 Jeff Polzin!)
Msharp 提到資料庫更新功能比其他技術更快,但仍然不是很好。(並且看到布萊恩·布恩也是原始問題的答案...另一個 JMP 13 效能增強。)我查看了腳本(這是使用 JSL 和 SQL 的巧妙方法),發現它將項目添加到列表的末尾,如下所示:
// 向前建構
轉送列表 = {};
開始時間 = 滴答秒();
對於( i = 0, i < 30000, i++,
插入(前向列表,i)
);
停止時間=滴答秒();
顯示(停止時間 - 開始時間);
停止時間 - 開始時間 = 1.68333333334886; // JMP 12 次
這在 JMP 12 及更早版本中確實很慢。該清單由其第一項在內部保存,最後一項必須透過遍歷清單的長度來發現。InsertInto() 預設會加入到清單末尾。 這會帶來 N^2 效能:清單長度加倍,時間增加四倍。有一種方法可以避免它:
// 建構反向
反向列表 = {};
開始時間 = 滴答秒();
對於( i = 0, i < 30000, i++,
插入(反向列表,i,1)
);
反向列表=反向(反向列表);
停止時間=滴答秒();
顯示(停止時間 - 開始時間);
停止時間 - 開始時間 = 0.0333333334419876;
這樣更好。使用第三個參數 1 呼叫 insertinto() 函數以插入到列表的前面。請注意,對reverse() 函數的呼叫也包含在報告的時間中。答案是一樣的:
顯示(反向列表==正向列表);
反向列表 == 正向列表 = 1; // 好,無論哪種方式都相同的答案
期待 JMP 13 嗎?這裡是:
// 向前建構
轉送列表 = {};
開始時間 = 滴答秒();
對於( i = 0, i < 30000, i++,
插入(前向列表,i)
);
停止時間=滴答秒();
顯示(停止時間 - 開始時間);
停止時間 - 開始時間 = 0.0166666668374091; // 傑夫太棒了!
長話短說,如果您有一個 JMP 12 腳本正在建立包含 100 多個左右項目的列表,請在前面插入,然後反向插入。不管怎樣,JMP 13 都會很快。
我在討論部分沒有看到用於回應的「讚」按鈕。 僅適用於第一篇文章。 這是11月3日發布的最後回覆:

讚按鈕現在又回來了,可以回覆。 對於它的短暫缺席,我深表歉意。 
我沒有看到奇怪的計數行為@pmroz報告。 如果繼續的話請告訴我。
我也注意到了這一點。 我想向發布解決方案的人表示感謝,但現在這是不可能的,因為「榮譽」按鈕沒有出現。
另一件事 - Kudos 按鈕的行為不一致:
0 讚:點擊並出現 1
2 點讚:點擊並出現 1(??)