Debug log trick trong java
Java
68
White

LinhPT viết ngày 28/01/2016

Trong code công ty mình hiện tại có khá nhiều đoạn code kiểu

 if(logger.isDebugEnabled()) {
     logger.debug("some expensive debug message"));
 }

note: bên mình sử dụng slf4j

Mình thấy khá ngạc nhiên và hỏi boss mình là tại sao hàm logger.debug chắc chắn bên trong đã có check là chỉ khi nào ở debug mode mới in ra rồi, lại còn cần hàm if để check làm chi, thừa thãi. Câu trả lời của boss là mình khá ngạc nhiên:

do hàm debug không phải là lazy, parameter được truyền vào (đoạn chữ bên trong block debug) nhiều khi không chỉ là một string mà còn là một xử lý khá nặng như là join một List rất là dài chẳng hạn. Việc đó sẽ làm performance của hệ thống bị giảm do nó phải evaluate các đoạn code không cần thiết khi chạy ở production. Việc để hàm if để check như thế sẽ khiến cho đoạn code bên trong không bị evaluate, do đó sẽ tăng performance hệ thống.

Khá thú vị đúng không các bạn :v

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

LinhPT

20 bài viết.
57 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
33 3
Mình thi thoảng phải quản lý linux server, mà trong đó có một số thao tác quản lý quan trong như quản lý đĩa cứng, quản lý mạng, quản lý đường truy...
LinhPT viết hơn 2 năm trước
33 3
White
23 2
(Ảnh) Tiêu đề chỉ là câu khách :v, thực ra là có một vài điểm về mysql explain mà chắc chưa nhiều bạn biết, tớ cũng hay quên nên note lại cho nhớ ...
LinhPT viết hơn 2 năm trước
23 2
White
18 0
Bài viết được dịch từ http://qiita.com/sion_cojp/items/04a2aa76a1021fe77079 Điều cần nhớ trước khi đánh bất kì câu lệnh nào ①Để tránh làm nặng...
LinhPT viết 9 tháng trước
18 0
Bài viết liên quan
White
0 0
Trong bài viết này, một số hình ảnh hoặc nọi dung có thể bị thiếu do quá trình chế bản. Vui lòng xem nội dung ở blog gốc sau: (Link) (Link), chúng...
programmerit viết hơn 2 năm trước
0 0
Male avatar
8 5
Facade Design Patern Facade Patern thuộc vào họ mô hình cấu trúc (structural patern). Facade patern phát biểu rằng : "just provide a unified an...
DuongVanTien viết hơn 1 năm trước
8 5
White
0 2
(Link), mình đã nêu ra các phần mềm chính (portal, sdk và ide). Trong phần này, mình sẽ hướng dẫn cụ thể cài đặt môi trường máy chủ và môi trường l...
programmerit viết hơn 2 năm trước
0 2
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
20 bài viết.
57 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!