Как ускорить set_tls и mprotect при запуске приложения ARM?
Я использую ARM (TI814x) на NAND (UbiFS). При запуске приложения QtGui требуется около 1 секунды, пока set_tls (локальное хранилище потока?) И mprotect не будут выполнены (в то время как загрузка всех общих библиотек занимает 1,3 секунды).
Почему это занимает так много времени и есть ли способ (например, конфигурация), чтобы ускорить это?
Например, при компиляции приложения без модуля QtGui это намного быстрее... но это не вариант.
[ 1.375] mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40052000
[ 1.391] set_tls(0x400524c0, 0x40052ba8, 0x400ad058, 0x400524c0, 0x400ad058) = 0
[ 1.860] mprotect(0x4105b000, 8192, PROT_READ) = 0
[ 1.875] mprotect(0x400cb000, 4096, PROT_READ) = 0
[ 1.875] mprotect(0x4006d000, 4096, PROT_READ) = 0
[ 1.875] mprotect(0x4018c000, 4096, PROT_READ) = 0
[ 1.922] mprotect(0x40f26000, 4096, PROT_READ) = 0
[ 1.954] mprotect(0x40e7a000, 16384, PROT_READ) = 0
[ 2.204] mprotect(0x400ac000, 4096, PROT_READ) = 0
[ 2.219] munmap(0x400e4000, 4969) = 0
[ 2.219] set_tid_address(0x40052068) = 212
[ 2.219] set_robust_list(0x40052070, 12) = 0
[ 2.235] futex(0xbebc1cc8, FUTEX_WAKE_PRIVATE, 1) = 0