CPU yakınlığını Android NDK ile derlenen yerel C koduna ayarlamak mümkün mü? Sistem bir Linux çekirdeği kullandığı için, sched_setaffinity/sched_getaffinity işlevlerini kullanmak mümkün olmalıdır, ancak NDK ile derlediğimde, cpu_set_t türünün bilinmediğinden (ki bu işlevlere bir argüman olarak kullanılır) şikayet ediyor . Bunu başarmanın başka bir yolu var mı? CodeSourcerys ARM derleyicisiyle (arm-none-linux-gnueabi-gcc) derlediğimde, bu bir problem gibi görünmüyor, bu yüzden sistem gerekli sistem çağrılarını destekliyor.Android'de sched_setaffinity ile yakınlık ayarlamak mümkün mü?
13
A
cevap
17
Aşağıdaki kod NDK r5 veya daha yeni iyi çalışır:
#include <sys/syscall.h>
#include <pthread.h>
void setCurrentThreadAffinityMask(int mask)
{
int err, syscallres;
pid_t pid = gettid();
syscallres = syscall(__NR_sched_setaffinity, pid, sizeof(mask), &mask);
if (syscallres)
{
err = errno;
LOGE("Error in the syscall setaffinity: mask=%d=0x%x err=%d=0x%x", mask, mask, err, err);
}
}
İlgili konular
- 1. ImageImage'ı displayImage() ile ayarlamak mümkün mü?
- 2. Anonim işlevlerde kesme noktası ayarlamak mümkün mü?
- 3. Başlıkları koşullu olarak ayarlamak mümkün mü?
- 4. Bir görünüme birincil anahtar ayarlamak mümkün mü?
- 5. Bir nesneyi null olarak ayarlamak mümkün mü?
- 6. Ansible'da bir dizinin gerçekliğini ayarlamak mümkün mü?
- 7. jgitflow Sürüm başlangıcında son sürümü ayarlamak mümkün mü
- 8. CSS özelliklerini kimlik önekine göre ayarlamak mümkün mü?
- 9. ReactJS'de bir tablo hücresinde bir CSSTransitionGroup ayarlamak mümkün mü?
- 10. Bir .sublime-project dosyasında ortam değişkenleri ayarlamak mümkün mü?
- 11. ? mümkün mü?
- 12. Enum imzasız char için varsayılan tür ayarlamak mümkün mü?
- 13. 7 gün boyunca aynı anda alarmı ayarlamak mümkün mü?
- 14. Java kullanarak dosyalara özel meta veriler ayarlamak mümkün mü?
- 15. SQL Server'ın NewId() öğesine sütun varsayılanını ayarlamak mümkün mü?
- 16. XAML'de denetimleri seçici olarak etkileyen bir stil ayarlamak mümkün mü?
- 17. Vardiya ve kontrol tuşlarının durumunu programlı olarak ayarlamak mümkün mü?
- 18. Range nesnesini "geriye doğru seçim" olarak ayarlamak mümkün mü?
- 19. AutoFixture SemanticComparison'da belirtilen türdeki özel karşılaştırıcıyı ayarlamak mümkün mü
- 20. UIButton'da hedef olarak bir blok ayarlamak mümkün mü?
- 21. Coreplot'ta barındırma görünümünün arka plan rengini ayarlamak mümkün mü?
- 22. ASP.NET'te bir oturum ayarlamak için uyumsuz çağrı çalıştırmak mümkün mü?
- 23. Solr - Yakınlık Arama kullanarak ifadeler
- 24. Statik bir sınıfın statik özel üyesini yansıma ile ayarlamak mümkün mü?
- 25. Android sürüm kodunu ve adını bir Gradle görevi ile ayarlamak mümkün mü?
- 26. Tek bir Set-Cookie ile birden fazla çerez ayarlamak mümkün mü?
- 27. mümkün mü?
- 28. mümkün mü?
- 29. mümkün mü?
- 30. Seti iplik işlemci yakınlık .Net
teşekkür ederiz, bu işe görünüyor! Gettid() 'in örtük bildirimi hakkında bazı şikayetler alıyorum, ancak sys/types.h (doğru dosya olmalı) olsa bile, derleyiciyi şikayet etmekten alamıyorum. Herhangi bir fikir? – Leo
"pthread.h" yerine "unistd.h" olması gerektiğini düşünüyorum. Projemde çok fazla var ve bu işlev için hangisinin gerekli olduğundan emin değilim. –
@Andrey Kamaev: Merhaba, fonksiyonunuzu kullanmaya çalışıyorum. Giriş maskesi değeri nedir? Maskeyi ayarlama hakkında daha fazla bilgi için – Nrupatunga