หนึ่งในปัญหาต่อเรื่อง performance ของระบบงาน
คือการเขียน log ของระบบงานลง file system !!
ซึ่งพบว่า ถ้าเปลี่ยนมาใช้การเขียน log แบบ Asynchronous จะดีกว่า Synchronous
เป็นเรื่องเล็ก ๆ ที่อาจจะส่งผลเยอะเช่นกัน
ดังนั้นลองมาปรับเปลี่ยนกันดู

โดยตัวอย่างเป็นการ config ใน Log4j นั่นเอง

จากการทดสอบนั้น performance ดีขึ้นเยอะเลย
รวมทั้งลดการใช้งาน memory ลงไป
ที่สำคัญไม่ไป block การทำงานบน main thread อีกด้วย

โดยใน Log4j นั้นจะใช้งาน Disruptor สำหรับ Asynchronous log
ดังนั้นเพิ่ม library ใน project ด้วย

แต่ปัญหาที่ตามมาคือ

  • การ config ที่เยอะขึ้น รวมทั้งเปลี่ยนแนวคิดด้วย
  • ลำดับของ log จะไม่สามารถควบคุมได้ ดังนั้นจะส่งผลต่อการนำ log ไปประมวลผลอื่น ๆ ต่อไป