MacDev 板


LINE

大家好,最近應公司需求必須開發一個OSX下的檢測系統... 現在碰到一個卡了很久的問題想請教有沒有建議的做法跟方向 現在程式開始測試時會有一個紀錄測試時間的Label 在程式開始動作的按鈕我寫下了: NSThread *Test_time; NSDate *Test_Time_total = [NSDate date]; -(IBAction)Start:(id)sender{ Test_time = [[NSThread alloc]initWithTarget:self selector:@selector(Test_Time) [Test_time setThreadPriority:0.3]; [Test_time start]; } -(void)Test_Time { #pragma mark Main - For Test Time. @autoreleasepool{ Test_Time_total = [NSDate date]; do{ [_testTimeLabel setStringValue:[NSString stringWithFormat:@"%1.2f s",[[NSDate date] timeIntervalSinceDate:Test_Time_total]]]; }while(AbortPress == NO); } 僅是光這樣而已,當我執行時時間確實會不斷刷新顯示至開始時至現在的時間, 但是XCode中記憶體(Memory Use)以及CPU(Percentage Used)會不斷攀升飆高 我的記憶體有8G攀升到了6.9G CPU幾乎滿載,更不用說寫其他測試METHOD了 想請問大家有沒有建議的方向或做法...就算不加@autoreleasepool也是一樣...謝謝! --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.248.134.2
※ 文章網址: https://webptt.com/m.aspx?n=bbs/MacDev/M.1470288349.A.48D.html
1F:推 Blueshiva: 你一直跑一個不會停止的迴圈,當然CPU狂衝啊...用 08/04 14:45
2F:→ Blueshiva: NSTimer做吧 08/04 14:45
謝謝回應,但是主要測試程式必須用迴圈去跑...設置要跑一個晚上看機器結果 會有停止的迴圈但是時間很長,請問這樣也能用NSTimer去撰寫嗎?謝謝! ※ 編輯: aureolus (60.248.134.2), 08/04/2016 15:10:53
3F:推 Blueshiva: 你另外開的這個thread除了計算目前時間跟開始測試的時 08/04 15:33
4F:→ Blueshiva: 間差外,沒看到任何計算,這種需求完全不需要用迴圈去 08/04 15:34
5F:→ Blueshiva: 跑吧... 08/04 15:34
謝謝,時間只是其中一個部分,主要測試有非常多測試Function, 比方說連接USB port..連接訊號 斷開訊號送出...GPIB指令等等 測試會依照使用者設定LOOP多次設置產生LOG這樣,剛剛我將時間用NSTIMER 成功解決了這個問題非常感謝,但是主要測試程序目前看起來只能用執行緒去跑 爬了許多文章有看到NSThread下自動釋放池在迴圈中好像是無效的...持續研究中 謝謝! ※ 編輯: aureolus (60.248.134.2), 08/04/2016 15:49:00
6F:推 songooo: 如果說做完一些動作後讓他睡個一秒呢 08/04 18:20
7F:→ songooo: [NSThread sleepForTimeInterval:1]; 08/04 18:21
8F:→ Esvent: Update UI的動作建議一定要在main thread做 08/04 22:35
9F:→ Esvent: 你這支程式如果把update timelabel那行dispatch到主線程去 08/04 22:36
10F:→ Esvent: 記憶體的上升速度就會明顯下降很多 08/04 22:37
11F:→ Esvent: 然後迴圈最好設個最小執行時間 執行時間小於該時間就sleep 08/04 22:40
12F:→ Esvent: 如果以會update UI的迴圈來說的話 就是1/60秒 08/04 22:41
13F:→ Esvent: 更新的比螢幕更新頻率還快的話也是看不到 沒什麼意義 08/04 22:44
非常感謝兩位的幫忙,Update UI要用dispatch我有深刻體驗了...非常感謝建議 加入後整個UI記憶體使用量下降非常多,現在都能控制整體在30~50m之間 睡個一秒這個我也試過了,但是對測試時間來說加太多反而會不能達到預期結果 CPU跟記憶體目前有明顯改善有下降了,不過還是會隨著程式跑越久迴圈疊加越多 這點還在持續研究記憶體洩漏的問題,感謝各位大力協助! ※ 編輯: aureolus (60.248.134.2), 08/05/2016 14:41:02







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Soft_Job站內搜尋

TOP