c#撰寫的程式,用戶使用兩個小時左右反映速度就卡慢
查了幾天,沒有找到原因,求高手指點
如果能細致點指導解決酬謝。
uj5u.com熱心網友回復:
看任務管理器,什么用完了uj5u.com熱心網友回復:
請詳細描述,用程式員黑話就是“代碼讓貓吃了”-----什么情況啊?uj5u.com熱心網友回復:
出現卡慢的時候,記憶體占用120M左右uj5u.com熱心網友回復:
根據系統分級通訊機制,記錄日志(包含統計——例如平均值——資訊),實際去分析服務運行速度變化情況,然后再看源代碼、在大量“真實原始資料”上進行回歸測驗。uj5u.com熱心網友回復:
“120M記憶體”不算什么事兒。人家資料庫系統占用記憶體10個G也沒事兒。關鍵是你自己的程式哪一個功能卡慢。uj5u.com熱心網友回復:
建議樓主把每個功能運行需要多長時間都加上日志uj5u.com熱心網友回復:
你先描述一下你的軟體。uj5u.com熱心網友回復:
看樣子是記憶體泄漏,特別是訪問vba、webbrowser這些,最好采用雙行程,行程外操作,用完關閉的方法uj5u.com熱心網友回復:
記憶體泄露有什么工具可以檢測到么
能不能檢測查到某個form 或 某放函式方法的原因
uj5u.com熱心網友回復:
我的軟體就是水果店的收銀用的軟體。 就是掃描商品,或者觸屏點擊+軟鍵盤檢索商品,會員檢索,充值,掃碼收款,結算列印等,里面用到了很多 多執行緒處理
uj5u.com熱心網友回復:
也有可能是硬體拖垮了軟體uj5u.com熱心網友回復:
如果記憶體只是占用120M,那么應該差不多可以排除記憶體泄漏的問題了,很可能就是CPU占用率過高,可以試著用procexplorer工具去查看一下軟體運行的瓶頸主要在哪里uj5u.com熱心網友回復:
要看一下慢在哪里?uj5u.com熱心網友回復:
你多執行緒得管理好,如果每次開啟多個執行緒,但執行緒一直沒結束,程式不慢才怪,你這肯定是多執行緒的問題,你跟蹤一下你的代碼執行緒可能堵塞或在排隊
uj5u.com熱心網友回復:
應該是執行緒堵塞或在排除。uj5u.com熱心網友回復:
可以使用vs自帶的性能分析工具進行記憶體使用分析,可以定位到哪個程序或者物件占用記憶體過大,重點對相應代碼或物件的創建程序進行分析.uj5u.com熱心網友回復:
建議用.NET Memory Profiler記憶體監測工具檢測一下,那個物件、變數的記憶體沒有釋放。uj5u.com熱心網友回復:
有哪位高手能幫忙協助指導解決這個問題么,酬謝。uj5u.com熱心網友回復:
首先任務管理器看行程的記憶體和cpu使用,確認是不是自己的程式有問題再確認是所有操作都慢?還是某些操作會慢
uj5u.com熱心網友回復:
一句話,答案全靠蒙
uj5u.com熱心網友回復:
你自己沒有測驗、跟蹤除錯各方面,這個問題就無法判斷。不是說比人是專門到論壇上剽竊、不真正討論技術的破壞者,而是你自己本身沒有將診斷和報告功夫做到位。uj5u.com熱心網友回復:
你可以查一下你的所謂“多執行緒”編程模式是否存在某種根本性的問題。
uj5u.com熱心網友回復:
最基本的吧,仔細分解自己的系統高層級的訊息通訊機制,對每一個訊息處理所經歷的任務記錄日志,包括時間和任務統計資訊。然后人工檢查日志,看看“如果手工這樣操作”是否存在混亂的和重復的操作。uj5u.com熱心網友回復:
商品資訊一定時間里是不變的,可以快取起來,不用每次從資料庫檢索。很多多執行緒做什么用呢,收銀一般是一個一個的來,多考慮實際使用場景,避免過度設計。轉載請註明出處,本文鏈接:https://www.uj5u.com/net/21160.html
標籤:C#
上一篇:這種點擊或者滑鼠放上去,就顯示二級界面的怎么實作呢?
下一篇:C# 列印機列印問題
