Saya memiliki situs yang saya selidiki yang memiliki masalah kinerja utama, menggunakan memcache saya dapat menurunkan jumlah kueri baik dalam jumlah dan waktu total pengerjaan (dari 3 detik hingga 230 ms) tetapi waktu eksekusi halaman sulit dihindarkan (saya melihat nilai-nilai yang dikeluarkan oleh devel) pengertian saya adalah bahwa waktu eksekusi halaman = waktu yang diperlukan untuk mengeksekusi php maka saya menginstal APC dan saya dapat melihat php opcode di-cache dan statistik menunjukkan hit di panel kontrol APC (apc.php dikirimkan bersama APC) tetapi waktu eksekusi halaman saya tidak turun. Jadi saya pikir pertanyaan saya ada dua:
- Apa yang dikontribusikan semua untuk (lebih lambat) waktu eksekusi halaman? Apakah ini hanya waktu yang dibutuhkan untuk menjalankan php?
- Pendekatan apa yang harus saya ambil untuk menurunkan waktu eksekusi halaman. Saya mencoba APC tetapi tidak banyak membantu
Jumlah modul PS yang digunakan di situs ini sangat besar (168) tetapi saat ini saya tidak dalam posisi untuk membuat rekomendasi itu, ini lebih seperti api dalam situasi lubang.
Sunting: Output menjalankan xhprof pada instance lokal (direkomendasikan oleh mikeytown), ini sepertinya gila Saya pikir hasil kemudian adalah karena meronta-ronta? menjalankan diff untuk url yang sama memiliki perbedaan drastis dan terlalu banyak penggunaan sumber daya. Juga tidak yakin mengapa ini menunjukkan nilai yang bukan dari hari ini: | (Saya baru saja menginstal xhprof di laptop ini)
sumber
EDIT: Saya salah membaca posting asli. 168 modul banyak, dan 300 hingga 700 ms dari query SQL sangat besar . Semakin banyak modul yang akan Anda gunakan, semakin banyak permintaan mereka akan begitu modul melakukan beberapa.
Gunakan caching agresif selagi Anda bisa, cache semuanya, jika itu tidak cukup, coba cache proxy terbalik. Menggunakan CDN untuk file bisa sangat meningkatkan semuanya. Cache proksi terbalik juga dapat membantu Anda dengan menghapus beberapa cookie autentik ketika mengenai halaman yang tidak membutuhkannya (maka core akan berpikir pengguna adalah anonim bagi mereka dan memaksimalkan caching).
Dinamika inti Drupal membuat seluruh fajar melambat begitu Anda memiliki terlalu banyak modul yang berinteraksi pada saat yang sama.
Saya akan mengatakan, misalnya, jika Anda menggunakan banyak modul yang memuat data pada waktu hook_node_load () alih-alih menggunakan bidang, itu akan membuat banyak pertanyaan sementara penggunaan bidang akan memastikan efisiensi caching.
Rendering dapat mengambil banyak waktu juga, drupal_render () (API rendering kadang-kadang disebut) adalah bagian yang bagus dari API (sangat berguna) tetapi juga agak lambat. Beralih ke PDO (D7) dan DBTNG penuh (yang sangat bagus) juga menambah latensi yang tidak dapat diabaikan.
Yang mengatakan, inti dengan sendirinya cukup cepat (tetapi tidak terlalu banyak query SQL, bahkan dengan hampir tidak ada yang diinstal), modul kode yang buruk sering menjadi hambatan.
APC dapat membagi waktu eksekusi per 2 atau 3, tergantung pada kode yang berjalan. jika Anda mengonfigurasinya dengan baik (aktifkan semua optimasi APC, manual APC resmi ditulis dengan baik dan akan memandu Anda).
Jika Anda berada di kotak dengan sistem file lambat (sistem file jaringan atau hard drive lambat) itu dapat menyiratkan dampak yang terlihat pada waktu eksekusi. Drupal dibuat dari banyak file kecil, yang memaksa PHP untuk melakukan I / O di FS setiap kali memuat salah satu dari mereka (APC juga banyak membantu untuk itu).
DBMS yang salah konfigurasi juga bisa menjadi hambatan yang jelek, jika Anda menggunakan MySQL, pikirkan untuk melakukan fine tuning. Jika Anda menggunakan hosting bersama, jika itu bukan Drupal spesifik (atau siap), DBMS dan tumpukan PHP mungkin akan salah konfigurasi atau tidak disetel, yang dapat menyebabkan situs sangat lambat.
Jangan lupa untuk mengaktifkan semua cache. Jika situs Anda tidak diautentikasi berorientasi pengguna, maka aktifkan caching halaman agresif (itu benar-benar menakjubkan).
Semakin banyak Anda memiliki blok, semakin banyak halaman penuh akan lambat, blok modul Views akan menjadi hambatan subuh (tergantung pada plugin Views yang Anda gunakan, blok OG bisa sangat menyebalkan) jika Anda tidak membatasi visibilitasnya. berdasarkan per halaman, atau dengan kode PHP khusus (blok lain juga, selalu mengatur visibilitas blok Anda secara manual, sangat membantu kerangka kerja dengan menghindarinya untuk mencoba membuat blok kosong).
Hindari modul yang menggunakan hook_init (), hook_init () dijalankan di setiap halaman, bahkan jika Anda mendapatkan 403 atau 404, yang memperlambat segalanya (bahkan memperlambat waktu pembuatan gaya imagecache | style, dan 404 kesalahan pada file akan menjadi fajar lambat hanya untuk memberi tahu Anda file tidak ada).
sumber