小编Kon*_*kin的帖子

在QML中动态创建ListModel

当我需要在运行时创建任何QML组件时,我可以使用该指南:http: //qt-project.org/doc/qt-5/qtqml-javascript-dynamicobjectcreation.html

即只需调用Qt.createComponent和component.createObject

但我找不到如何在运行时创建ListModel?用qml,而不是用c ++.

你可以问,为什么我需要它.所以,我有一个嵌套的ListModel:有外部模型,它委托包含的内部模型.因此,当我调用outer_model.append({})时,我必须为内部模型传递新创建的ListModel .我不能在外部委托中使用静态定义的内部模型,因为我无法在运行时访问此类模型.顺便说一句,可以以某种方式访问​​它吗?

PS也许在javascript中尝试管理模型是完全错误的想法?

javascript runtime qml qt5

10
推荐指数
2
解决办法
9998
查看次数

即使使用 VDSO,clock_gettime 也可能很慢

我在 Intel(R) Xeon(R) CPU E5-2667 v4 @ 3.20GHz 上使用 CentOS Linux 7.3.1611 版

在我的用户空间应用程序测试期间,我注意到 clock_gettime(CLOCK_MONOTONIC, &ts) 可能需要 5-6 微秒而不是平均约 23 纳秒。它可能每 10000 次后续调用只发生一次,但是它可能会发生。

如果没有 VDSO 库,则可以解释。但是,VDSO 用于每个clock_gettime(我通过strace 检查过)。

无论相应的线程是否关联到某个 CPU 内核。不管这个CPU内核是否与操作系统隔离。这意味着测试应用程序可能会在独占 CPU 内核上运行,而无论如何可能会出现延迟!

我通过比较两个随后的 clock_gettime 调用的结果来测量延迟,例如:

unsigned long long __gettimeLatencyNs() {
    struct timespec t1_ts;
    struct timespec t2_ts;
    clock_gettime(CLOCK_MONOTONIC, &t1_ts);
    clock_gettime(CLOCK_MONOTONIC, &t2_ts);
    return ((t2_ts.tv_sec - t1_ts.tv_sec)*NANO_SECONDS_IN_SEC + t2_ts.tv_nsec - t1_ts.tv_nsec);
}  
Run Code Online (Sandbox Code Playgroud)

任何人都可以分享一些想法,那里可能有什么问题?

linux time-measurement vdso

3
推荐指数
2
解决办法
2674
查看次数

标签 统计

javascript ×1

linux ×1

qml ×1

qt5 ×1

runtime ×1

time-measurement ×1

vdso ×1