クロスプラットフォームライブラリとAPI
Qt Creator IDEと生産性向上ツール
UI compositionのためのUIデザインツール
Qtプロジェクト向け
モバイルアプリのデジタル広告
受託開発、トレーニング、サポート等
組み込み向けユーセージ分析
Qtは、UIデザインやソフトウェア開発から品質保証、展開に至るまで、製品開発ライフサイクル全体で生産性を向上させます。あなたのニーズに最も適したソリューションを見つけてください。
最新のリソースを入手し、今後のイベントを確認しましょう。
理想的な学習リソースを見つけたり、コミュニティと交流したりして、Qtのスキルを向上させましょう。
初心者であろうとベテランのQtプロであろうと、成功するために必要なサポートと助けがすべて揃っています。
9月 18, 2024 by Qt Group 日本オフィス | Comments
特定の要件を満たしたり、使いやすさを向上させたりするために、システムの起動時間を短縮する方法を知っておくことは多くの場合、有益です。
注: これはRaspberry Piの最短動時間を示すものではなく、最適化調整の入門記事です。
この記事では、ユーザー空間での最適化のみを対象としています。他の(カーネル空間など)の最適化の方が良い結果をもたらす可能性もありますが、アプリケーション開発者の視点から最も利用しやすい方法であると思われます。
Raspberry Pi 4は、初期起動段階の最適化に関しては制限がありますのでご注意ください。
この最適化により、全体の起動時間を約13%短縮することができました。
このシナリオでは、Boot to Qt イメージが使用されますが、この手順は特定のイメージに限定されるものではありません。Boot to Qt イメージとツールチェーンは、Qtメンテナンスツールで入手できます。
まずRaspberry Piにイメージをフラッシュし、電源を入れます。RaspberryがデフォルトのBoot to Qtアプリケーションで起動したら、次の手順に進みます。
Boot to Qtのビルドに関する一般的な手順は、ここで取り上げられています。
Boot to Qt ディストリビューションをビルドする際、WebEngine を使用しない場合は、b2qt.conf ファイルから webengine の DISTRO_FEATURES を削除してください。これにより、時間とリソースを節約できます。
注:さらなる最適化(例えば静的ビルド)を目指す場合は、最終的にはご自身でBoot to Qtをビルドする必要があります。
ユーザー空間で最初に起動されるプロセスは /sbin/init です。デフォルトのイメージを使用している場合、これは systemdの起動スクリプトのシンボリックリンクです。systemd-analyze ツールを起動後に適用すると、デフォルトで多くの不要なサービスが起動していることがわかります。
以下は
systemd-analyze plot > /tmp/systemd-boot.svg
を実行した調査結果の一部です。
不要なサービスを一つずつ削除する代わりに、初期化に systemd を使用しないようにします。この最適化後は、systemd のランレベル、サービス、その他の機能は利用できなくなりますのでご注意ください。代わりに、systemd とは独立した init スクリプトを使用します。
この時点では、アプリケーションの依存関係を把握しておくことをお勧めします。理想的にすぐ利用できるアプリケーションが存在しますが、そうでない場合は、initスクリプトを修正することで、後から依存関係を追加することができます。
新しいスクリプトを作成し、シンボリックリンクのターゲットをそのスクリプトに変更します。スクリプトが実行可能であることを確認してください。
QT_QPA_EGLFS_KMS_CONFIG 経由でアプリケーションが後で使用する新しい /opt/kms.config
ファイルを作成します。次のような内容になります。
{
"device": "/dev/dri/card1",
"hwcursor": false,
"pbuffers": true,
"outputs": [
{
"name": "VGA1",
"mode": "off"
},
{
"name": "HDMI1",
"mode": "1024x600"
}
]
}
アプリケーションを最小限のブートで起動するための /sbin/new_init.sh
スクリプトは、以下のような内容です。
#!/bin/sh
mount -t sysfs none /sys
mount -t proc none /proc
mount -t tmpfs none /tmp
mount -o remount,rw /
#graphics setup
modprobe -a vc_sm_cma gpu_sched videodev v3d i2c_brcmstb
export QT_QPA_EGLFS_KMS_CONFIG=/opt/kms.config
./opt/app
注:アプリケーションによっては、さらにカーネルモジュールをロードする必要があります。
Download the latest release here: www.qt.io/download.
Qt 6.8 release focuses on technology trends like spatial computing & XR, complex data visualization in 2D & 3D, and ARM-based development for desktop.
Check out all our open positions here and follow us on Instagram to see what it's like to be #QtPeople.
11 17, 2024
本稿は「MinGW and Side-by-Side Manifests」の抄訳です。 Qt Creator 14では、Python..
11 17, 2024
本稿は「Qt Creator 15 RC released」の抄訳です。 Qt Creator 15 RC..
11 10, 2024
本稿は「C++20 comparison in Qt (even with C++17🤩)」の抄訳です。 Qt..
Qt Group includes The Qt Company Oy and its global subsidiaries and affiliates.