Apakah ada suite benchmark yang sudah ada sebelumnya untuk Emacs sendiri?


10

(Pertanyaan ini bukan tentang menulis tolok ukur / profiling kode elisp, untuk itu, lihat pertanyaan ini .)

Apakah ada suite benchmark untuk kinerja Emacs? Saya mencari sesuatu yang setara dengan tolok ukur standar tim juru bahasa V8 atau rangkaian tolok ukur tim pypy .

Saya ingin dapat menjawab pertanyaan seperti 'apakah Emacs 24.4 lebih cepat dari 24.3?'.

Apakah ada suite benchmark yang ada?


2
Saya pikir orang-orang yang berbicara tentang Guile VM harus dapat memberi kita beberapa petunjuk, karena keuntungan selalu kembali adalah seberapa cepat itu vs Elisp.
Nsukami _

Kecepatan adalah faktor dalam menggunakan Guile VM, tetapi FFI dan dukungan utas yang tepat juga ada dalam daftar dan dapat diperdebatkan lebih penting.
dgtized

Jawaban:


3

Sayangnya, saya tidak tahu adanya tolok ukur kinerja yang baik untuk Emacs. Sebagian alasannya adalah bahwa itu tergantung pada apa yang ingin Anda ukur (menampilkan kembali kinerja? Kinerja I / O? ...).

Mengenai kinerja Elisp khususnya, kurangnya tolok ukur adalah gejala dari relatif kurangnya pekerjaan untuk meningkatkan kinerjanya. FWIW, ketika bekerja pada implementasi lexical-binding, saya memang menggunakan tolok ukur untuk mencoba dan memastikan bahwa fitur baru ini tidak datang dengan biaya kinerja yang lebih rendah.

Tolok ukur yang saya gunakan ini adalah:

rm **/*.elc lisp/loaddefs.el; make -jN

menjalankannya dari dalam sumber Emacs menyebabkan semua file Elisp dikompilasi ulang, dan byte-compiler adalah salah satu dari sedikit file Elisp yang berjalan untuk jangka waktu yang lama dan dapat dengan mudah dijalankan dalam mode batch.

Kelemahannya adalah ini adalah target yang bergerak, karena waktu yang dibutuhkan tergantung pada versi byte-compiler yang Anda gunakan dan juga pada versi Emacs yang Anda kompilasi.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.