
Joularjx adalah agen berbasis Java untuk pemantauan daya perangkat lunak di tingkat kode sumber.
Dokumentasi terperinci (termasuk panduan pengguna dan referensi) tersedia di: https://joular.github.io/joularjx/.
Untuk membangun joularjx, Anda membutuhkan java 11+ dan maven, lalu hanya membangun:
mvn clean install -DskipTests
Atau, Anda dapat menggunakan bungkus Maven yang dikirimkan dengan proyek dengan perintah:
Linux: ./mvnw clean install -DskipTests
Windows: ./mvnw.cmd clean install -DskipTests
Joularjx bergantung pada perangkat lunak atau paket berikut untuk mendapatkan pembacaan daya:
config.properties .powermetrics , sebuah alat yang dibundel dengan macOS yang membutuhkan berjalan dengan akses sudo . Disarankan untuk mengotorisasi pengguna saat ini untuk menjalankan /usr/bin/powermetrics tanpa memerlukan kata sandi dengan membuat modifikasi yang tepat ke file sudoers .Kami juga mendukung Dewan Tinker Asus.
Joularjx adalah agen Java di mana Anda dapat menghubungkannya ke mesin virtual Java saat memulai kelas utama program Java Anda:
java -javaagent:joularjx-$version.jar YourProgramMainClass
Jika program Anda adalah file jar, maka jalankan saja seperti biasa saat menambahkan joularjx:
java -javaagent:joularjx-$version.jar -jar yourProgram.jar
Joularjx akan menghasilkan beberapa file CSV sesuai dengan pengaturan konfigurasi (di config.properties ), dan akan membuat file-file ini di folder joularjx-results .
File yang dihasilkan tersedia di bawah struktur folder berikut:
filter-method-names ) Joularjx dapat dikonfigurasi dengan memodifikasi file config.properties :
filter-method-names : Daftar string yang akan digunakan untuk memfilter metode yang dipantau (lihat file yang dihasilkan di bawah ini untuk penjelasan).save-runtime-data : Tulis metode runtime konsumsi daya dalam file CSV.overwrite-runtime-data : File Data Runtime, atau jika diatur ke FALSE, itu akan menulis file baru untuk setiap siklus pemantauan.logger-level : Tetapkan tingkat informasi (oleh Logger) yang diberikan oleh Joularjx di terminal (nilai yang diizinkan: off, info, peringatan, parah).powermonitor-path : Jalur lengkap ke Program Monitor Daya untuk Windows (hanya untuk Windows).track-consumption-evolution : Menghasilkan file CSV untuk setiap metode yang berisi rincian konsumsi metode dari waktu ke waktu. Setiap nilai konsumsi dipetakan ke cap waktu UNIX.hide-agent-consumption : Jika diatur ke true, konsumsi energi utas agen tidak akan dilaporkan.enable-call-trees-consumption : Metode Hitung Panggilan Pohon Konsumsi Energi. File CSV akan dihasilkan pada akhir eksekusi agen, bergaul dengan setiap pohon panggilan itu konsumsi energi total.save-call-trees-runtime-data : Tulis runtime call tree konsumsi daya dalam file CSV. Untuk setiap siklus pemantauan (1 detik), file CSV baru akan dihasilkan, berisi konsumsi daya runtime dari pohon panggilan. File yang dihasilkan akan mencakup cap waktu atas nama mereka.overwrite-call-trees-runtime-data : Timpa File Data Power Pohon Panggilan Runtime, atau jika diatur ke False, itu akan menulis file baru untuk setiap siklus pemantauan.application-server : Menangani server dan kerangka kerja aplikasi dengan benar (boot Sprig, Tomcat, dll.). Tetapkan true saat berjalan di server aplikasi. Jika salah, loop pemantauan akan memeriksa apakah JVM dihancurkan, maka menutup Joularjx ketika aplikasi berakhir (dalam aplikasi Java biasa). Jika benar, Joularjx akan terus memantau dengan benar karena JVM tidak dihancurkan di server aplikasi.vm-power-path : Jalur untuk konsumsi daya mesin virtual. Di dalam mesin virtual, tunjukkan file yang berisi konsumsi daya VM (yang biasanya merupakan file di host yang dibagikan dengan tamu).vm-power-format : Format daya dari file daya VM bersama. Kami saat ini mendukung dua format: watts (file yang berisi satu nilai float yang merupakan konsumsi daya VM), dan powerjoular (file CSV yang dihasilkan oleh Powerjoular di host, berisi 3 kolom: cap waktu, pemanfaatan CPU dari VM dan daya CPU VM). Anda dapat menginstal Paket JAR (dan PowerMonitor.exe di Windows) di mana pun Anda inginkan, dan menyebutnya di javaagent dengan jalur lengkap. Namun, config.properties harus disalin ke folder yang sama dengan di mana Anda menjalankan perintah java atau lokasinya harus diatur dengan properti -Djoularjx.config=/path/to/config.properties saat menjalankan program Anda.
Dalam mesin virtual, joularjx membutuhkan dua langkah:
Untuk data daya real-time atau energi total di pintu keluar program, Joularjx menghasilkan dua file CSV:
config.properties ). Data ini bukan hanya subset dari file data pertama, tetapi lebih merupakan perhitungan ulang yang dilakukan oleh Joularjx untuk memberikan data yang akurat: metode yang dimulai dengan kata kunci yang difilter, akan dialokasikan daya atau energi yang dikonsumsi dengan metode JDK yang disebutnya. Misalnya, jika Package1.MethodA memanggil java.io.PrintStream.println untuk mencetak beberapa teks ke terminal, maka kami menghitung:
println secara terpisah dari MethodA . Konsumsi daya yang terakhir tidak akan termasuk yang dikonsumsi oleh println .Package1 , maka konsumsi daya println akan ditambahkan ke konsumsi daya MethodA , dan file hanya akan menyediakan daya atau energi metode Package1 .Kami berhasil melakukan ini dengan menganalisis stacktrace dari semua utas yang sedang berjalan saat runtime.
Joularjx Reader adalah GUI untuk memproses, menganalisis, dan memvisualisasikan file energi yang dihasilkan Joularjx. Ini tersedia di repositori sendiri di sini.
Untuk mengutip pekerjaan kami dalam makalah penelitian, silakan mengutip makalah kami di Konferensi Internasional ke -18 tentang Lingkungan Cerdas (IE2022).
@inproceedings{noureddine-ie-2022,
title = {PowerJoular and JoularJX: Multi-Platform Software Power Monitoring Tools},
author = {Noureddine, Adel},
booktitle = {18th International Conference on Intelligent Environments (IE2022)},
address = {Biarritz, France},
year = {2022},
month = {Jun},
keywords = {Power Monitoring; Measurement; Power Consumption; Energy Analysis}
}
Joularjx dilisensikan di bawah lisensi GNU GPL 3 (GPL-3.0 saja).
Hak Cipta (C) 2021-2024, Adel Noureddine, Université de Pau et des Pays de l'Adour. Semua hak dilindungi undang -undang. Program ini dan materi yang menyertainya tersedia berdasarkan ketentuan Lisensi Publik Umum GNU V3.0 saja (GPL-3.0-Only) yang menyertai distribusi ini, dan tersedia di: https://www.gnu.org/licenses/gpl-3.0.en.html
Penulis: Adel Noureddine