2008-12-13 41 views
8

Tôi đang xem xét Smarty là giải pháp tạo mẫu ứng dụng web của mình và giờ đây tôi quan tâm đến hiệu suất của nó so với PHP thuần túy.Điểm chuẩn thông minh, có ai không?

Trang web thông minh cho biết nó phải giống nhau, tuy nhiên, tôi không thể tìm thấy bất kỳ ai thực hiện điểm chuẩn thực để chứng minh tuyên bố đúng hay sai.

Có ai làm một số điểm chuẩn của Smarty so với PHP thuần túy không? Hoặc có thể đi qua một số tài nguyên về các bài kiểm tra như vậy?

Cảm ơn

+0

Tôi có thể sai, nhưng Smarty là 'Plain Php', nó chỉ là một công cụ tạo khuôn mẫu được viết bằng php. Có vẻ như bạn không thể viết một động cơ templating nhanh hơn smarty – andrew

Trả lời

14

Bởi vì cuối cùng, Smarty biên dịch và lưu trữ các tệp mẫu thành mã PHP gốc, thực sự không có sự khác biệt về hiệu suất lý thuyết. Tất nhiên sẽ luôn có một số tổn thất về hiệu năng do đoạn mã Smarty-code cần phải được diễn giải mọi lúc.

3

Chỉ cần tìm thấy this rất đơn giản benchmark - propably không phải là rất đáng kể.

+1

Miền không còn trực tuyến nữa, nhưng đây là một sự thay thế tốt http://cedric.emisfr.info/en/2010/03/25/ smarty-2-6-3-0beta-and-dwoo-performance/ – TravisO

1

Smarty tạo mã PHP cho tất cả các tệp mẫu khi chúng được sử dụng lần đầu tiên, miễn là bạn đã thiết lập chính xác và sử dụng chúng khi có thể thay vì phân tích lại mẫu.

Tôi đã sử dụng nó một thời gian và nó đủ nhanh, nhưng cuối cùng tôi đổi nó ra cho các tệp PHP đơn giản vì nó có một chút hạn chế (quá nhiều PHP4-isms).

1

Smarty chính nó là thay vì một thư viện lớn ... Nếu bạn sẽ sử dụng Smarty, tôi đề nghị bạn sử dụng APC để cache phiên bản biên soạn .. Nó sẽ bù đắp cho kích thước khá lớn của thư viện Smarty ...

1

Nó phụ thuộc vào cách bạn sử dụng Smarty vì dòng chảy của các trang của bạn thể thay đổi

cổ điển đồng bằng PHP dòng chảy:

  • Output
  • Xử lý $ _R dữ liệu EQUEST
  • Output
  • cơ sở dữ liệu Xử lý truy vấn
  • Output
  • Xử lý $ _REQUEST dữ liệu
  • Output
  • ...

cổ điển Smarty dòng chảy:

  • Xử lý tất cả dữ liệu $ _REQUEST
  • Xử lý tất cả các cơ sở dữ liệu truy vấn
  • Output tất cả

Nếu đồng bằng PHP mất 1,0 giây cho trang này trang Smarty cũng mất 1,0 giây. NHƯNG nếu chúng ta giả định rằng tất cả cơ sở dữ liệu và $ _request handeling mất 0,7 giây. PHP đơn giản bắt đầu đầu ra trực tiếp trong khi phiên bản Smarty bắt đầu xuất sau 0.7 giây. Do đó, trình duyệt có thể bắt đầu tải xuống bảng định kiểu và hình ảnh nhanh hơn. Không có đầu ra nào cũng có nghĩa là nút "Dừng" không có hiệu lực.

Tuy nhiên trong Smarty bạn có thể gọi hàm và phương thức từ bên trong mẫu. Trì hoãn phần chậm đến nơi cần dữ liệu.

0

a drop in replacement for Smarty called Template Lite nhẹ hơn nhiều so với kích thước tệp thư viện. Điều đó nói rằng, tôi đã sử dụng Smarty ban đầu trong một số tình huống tải rất cao mà không cần phải trao đổi trong thư viện này.

4

Bạn cũng có thể muốn đi tại một thư viện mẫu mới đó là tương tự như Smarty gọi Dwoo

0

Dựa trên kinh nghiệm của riêng tôi và điểm chuẩn chính thức, Smarty không tự nó gây ra bất kỳ giảm hiệu suất lớn. Tuy nhiên, khi bạn nhận được vào viết plugin tùy chỉnh, mọi thứ đi xuống dốc.

Mẫu Smarty được biên dịch & được lưu trong bộ nhớ cache dưới dạng PHP, nhưng plugin tùy chỉnh luôn được tải và thực thi khi chạy và luôn chạy chậm hơn so với chạy cùng một mã trong tệp PHP cũ. Bạn sẽ không nhận thấy điều này quá nhiều với một plugin định dạng chuỗi tùy chỉnh, nhưng bạn chắc chắn sẽ thấy nó khi thực hiện truy vấn cơ sở dữ liệu trong một plugin.

Nhìn chung, tôi khuyên bạn nên sử dụng Smarty. Việc hiển thị ra khỏi PHP đã làm cho mã của chúng ta dễ đọc hơn nhiều và có thể bảo trì được. Bạn chỉ cần chắc chắn rằng bạn đang cẩn thận về những gì bạn đưa vào plugin.

2

đây là một XSLT giải pháp templating đây là tiêu chuẩn của tôi cho một trong những trang tôi chuyển đổi (một trang đơn giản của nó):

// with smarty (baseline) 
    0.014 seconds 

// with xsl/xslt-clientside 
    0.008 seconds 
    42% decrease in server stress 

// with xsl/xslt-serverside 
// this process would only be done if the users browser doesn't support client-side XSLT 
    0.016 seconds 
    14% increase in server stress 

của nó không phải cho tất cả mọi người nhưng nếu hiệu suất là mối quan tâm chính của bạn :)

Trên hết, bạn cho phép ứng dụng lưu trữ mẫu của bạn.

đây là một ví dụ về những gì tôi đang làm (đây là một trong những trang web của tôi): http://pixao.com

và đây là một ví dụ của nó trên một trang web quy mô lớn hơn là: http://worldofwarcraft.com

cho đến nay tôi vẫn chưa chạy vào bất kỳ chương trình nút chai

2

Dưới đây là một mẫu động cơ tiêu chuẩn mà kiểm tra PHP vs Smarty và nhiều mẫu động cơ hơn http://www.raintpl.com/PHP-Template-Engines-Speed-Test/

  • Để gán bài tập Twig là nhanh hơn, nó biên dịch mẫu html thành một lớp, vì vậy nó cũng nhanh hơn trong việc thực thi nhiều hơn PHP bao gồm cả ! IMHO nặng (nhiều tệp) và phức tạp, nhưng rất nhanh!

  • Để lặp lại nhanh hơn là PHP bao gồm, và ngay sau đó có Rain rất dễ, nhỏ (1 tệp) và nhanh.

+0

Hãy thử trở thành thành viên có giá trị của SO. Lịch sử câu trả lời của bạn trông giống như quảng cáo trắng trợn. –

+0

Gắn cờ là Spam. –

Các vấn đề liên quan