前段時間工作中遇到乙個很棘手的問題,壓力測試過程中程序掛死,檢視coredump,指向的是qt的內部庫檔案報錯,且報錯資訊也不完整。由於庫檔案是由另外的人負責,排查起來也是頭大。
後來還諮詢了所謂的qt大神,大概就是說元件太多了,然後說把現有元件組合下,然後分別壓力測試,看具體是哪個元件的問題。
what?
且不說這方法靠不靠譜,即使是因為哪個元件除了問題,這乙個元件**量也不在少數,排查起來依舊困難,感覺跟直接把**檢查一遍沒區別。
當然,既然是專家,還是得照做,壓測了n天n種case。無果。因為有幾種case都會出現,然後專家又說了,那就肯呢個是元件載入太多的原因。
【一臉懵】
後來,組長都看不下去了,親自去排查了,然後突然有一天說這樣改,讓去壓測下。奇蹟了,壓測n天,無掛死,
這件事情便告一段落了。
那修改的是什麼呢。
我們這個介面寫的呢,有好幾個元件,開始為了加快啟動速度,所以把元件都動態載入了。修改的就是這幾個動態載入的元件,之前元件載入的時候就扔在那兒沒管。當然可能存在元件還沒有載入ready,就開始訪問元件的內容的情況。改動就增加了這個機制:確保元件使用時,該元件已經完全載入ok。
這個理由很簡單,但當時就是沒想到。果然姜還是老的辣。。。
qml 元件復用
在編寫元件時,使用下面兩種方法可以實現元件的復用 import qtquick 2.0 import qtquick.window 2.2import qtquick.controls 1.4as controls import global 1.0import qrc materialui cor...
Qml元件小知識
介紹元件構造,銷毀,動態載入小知識。物件 元件都具有類似c 的建構函式和析構函式qtobject使用loader載入元件component loader動態載入qml元件 1 qml為qml元件描述語句 parent為依附於那個父類控制項 filepath為重定向到檔案的載入過程中的錯誤報告 obj...
QML 使用ListView執行時動態載入Item
想要實現使用listview執行時動態載入item,需要兩個步驟 動態生成item 將動態生成的item插入到listview的model中 對於這兩個步驟,前者可以使用createcomponent和component.createobject實現,後者可以使用objectmodel實現,詳細內容...