が発生します。は、高いCPU使用率再現する方法
- は私のコード
あなたのハードウェアに依存しますが、CPU使用率がかなり高いことがわかります。 my PCでは、それは20%(4つの仮想コアのそれぞれで5%)です。
このテストケースのための私のモチベーション:私の本当のアプリで私は目に見えない(culled)の項目の多くを持っている、とカリングは、CPUの使用率と多くのことを助けることながら、それは私が「と同じくらいの助けにはなりません期待しています。
なぜCPU使用率が高いのか、それを減らす方法についてのアイデアがあります。私はQMLプロファイラでそれをプロファイリングしまし
import QtQuick 2.0
Rectangle {
id: root
color: "black"
property real rotAngle: 0
NumberAnimation on rotAngle {
from: 0
to: 360
loops: Animation.Infinite
running: true
duration: 500
}
transform: Rotation {
origin.x: root.width/2
origin.y: root.height/2
angle: root.rotAngle
}
}
、どの:
私のコード:
main.qml:
import QtQuick 2.5
import QtQuick.Window 2.2
Window {
visible: true
width: 800
height: 500
MouseArea {
width: 1
height: 1
hoverEnabled: true
}
AnimatedItem {
anchors.centerIn: parent
width: 100
height: 100
}
Repeater {
model: 8000
Item {
opacity: 0
layer.enabled: true
width: 1
height: 1
}
}
}
AnimatedItem.qml QMLにわずかな時間が費やされていることが示されています。だから、私はまた、C++プロファイラ(CodeXL)でプロファイリングしました。それはQSGNodeUpdater::isNodeBlocked(QSGNode*, QSGNode*) const
を呼び出すため、多くの時間がQSGRootNode::~QSGRootNode()
に費やされていると報告しています。私はQtのソースを見てきましたが、なぜそれが前者を呼び出すのかを理解できませんでした。