Титла: Как да пренапиша този код от С в Java Публикувано от: popov222 в Dec 27, 2013, 10:31 Здравейте,
Искам да напиша Java програма която да взема от /proc всички демони и данните на демоните. И стигнах до един проблем: Трябва да взема от кода на top кода за изчисление на CPU и RAM а тоза се прави по формула. Можете ли да ми помогнете да намеря тази формула? Прикачил съм кода на top. Поздрави Титла: Re: Как да пренапиша този код от С в Java Публикувано от: BRADATA в Dec 27, 2013, 16:28 http://www.linuxhowtos.org/System/procstat.htm
Титла: Re: Как да пренапиша този код от С в Java Публикувано от: gat3way в Dec 27, 2013, 19:15 Подозирам че искаш да си правиш "красив" top за Андроид?
Титла: Re: Как да пренапиша този код от С в Java Публикувано от: bvbfan в Dec 27, 2013, 20:06 Може да пренасочиш stdout към буфер и да ползваш целият код написан на С и още по-добре може да си го компилираш в динамична библиотека и Java-та само да викаш една функция. ;D Повече не мога да издавам научете малко С.
Титла: Re: Как да пренапиша този код от С в Java Публикувано от: gat3way в Dec 27, 2013, 22:12 Това с JNI по принцип не е лоша идея, но те връзва към архитектурата и става голяма забава ако трябва да подържаш няколко различни такива...според мен има смисъл когато трябва да се достъпва нещо по хардуера на по-ниско ниво, което не е expose-нато за java-та...или ако трябва да правим cpu-интензивни сметки, които java-та няма да докара по-бързо от добре оптимизиран C код. В случаят с четенето от procfs не знам дали има смисъл от заниманието...формули, глупости, мисля че най-добре е някъде да се види документация на нещата в procfs и да се види кое на коя колона в /proc/pid/stat какво точно е, формулата оттам няма кой-знае колко мислене да се докара.
Ако все пак е за андроид, там от 4.3 нататък (и особено в киткат-а) нещо доста позатегнаха нещата с тези selinux простотии, та може и да не може да се изчетат procfs нещата от процес, вървящ с друг uid....ама знам ли, не съм си играл. При всички положения, четенето от procfs, разбиването на низове с някакъв разделител и превръщането от низ към int не е особено сложно, на java е още по-лесно. Всичко става с малко играчки и експерименти, аз не съм сигурен че ако търсиш акъл от друг човек ще е по-добре точно в този случай, в сравнение с това да си поиграеш. Титла: Re: Как да пренапиша този код от С в Java Публикувано от: popov222 в Dec 29, 2013, 00:18 Добре де, но в proc/XXX/stat файла имаме 1746 (hald-runner) S 1745 1745 1745 0 -1 4202496 1197 13856 9 10 0 1 4 5 20 0 1 0 3498 20815872 282 18446744073709551615 1 1 0 0 0 0 0 4096 65536 18446744073709551615 0 0 17 1 0 0 23 0 0. Как използвам тези данни, така че да мога да получа cpu load?
Титла: Re: Как да пренапиша този код от С в Java Публикувано от: BRADATA в Dec 29, 2013, 09:40 В статията, дето пуснах линк пише кое какво е и как да си го извадиш.
|