2012-04-16 17 views
11

Tôi đang lược tả một ứng dụng PHP (được xây dựng dựa trên khung công tác Zend). Kèm theo bạn có thể tìm thấy ảnh chụp màn hình của biểu đồ cuộc gọi chính mà KCacheGrind tạo ra từ đầu ra xDebug.Giải thích biểu đồ xDebug PHP

Có hai điều mà tôi không hiểu:

1) Tại sao {main}"ngã ba" thành 2 cuộc gọi? Họ có phải là song song bằng cách nào đó hoặc không xảy ra sau khi khác?

2) Mũi tên ở bên trái {main} có một thanh màu xanh nhỏ với văn bản 2x; điều này có nghĩa là cuộc gọi đến Zend_Application->bootstrap xảy ra hai lần?

 

PHP xDebug graph

Trả lời

16
  1. Các cuộc gọi (tất nhiên) xảy ra sau mỗi khác. Biểu đồ chia tách vì mỗi hàm trên cùng là được gọi là theo chính(). Biểu đồ hiển thị cuộc gọi, không phải thứ tự thực hiện.

  2. Vâng, đó chính xác là ý nghĩa của nó. main() được gọi là Zend_Application-> bootstrap hai lần và -> chạy một lần.