Why Nostr? What is Njump?
2024-06-19 17:47:40

lnwza007 on Nostr: จากการลองทำ Nostr Relay ...

จากการลองทำ Nostr Relay หลายวันที่ผ่านมาได้ สนุกมากเลยครับ ได้ลองทำอะไรใหม่ๆ

อาทิตย์หน้าก็จะเปิดเทอมแล้ว คาดว่าเวลาว่างจะน้อยลงมากๆ ผมเลยรีบอยากจะปล่อย Relay ออกมาโดยเร็ว ... แต่ยังคงความสามารถพื้นฐาน

ส่วนพวก nip อื่นๆ ที่น่าสนใจไว้ว่างๆ ค่อยมาทำต่อ

เอาล่ะ คันปากอยากจะเกาเหลาสักหน่อย เรื่องทำ Relay นี่ล่ะ

นอกจากทอดสอบว่าผมทำตาม เอกสาร nip ได้แล้ว ผมยังทำสองใช้ Technology ที่น่าสนใจหลายๆ อย่างเลย


ไม่กี่วันก่อนผมติดปัญหากับ Kotlin Coroutines ซึ่งผมนำมาใช้กับงานที่ข้องแวะกับ ฐานข้อมูล (อ่าน, เขียน, ลบ)

ปัญหาที่เจอยังไม่สามารถหาคำอธิบายได้ว่ามันเกิดอะไรขึ้นกันแน่ สิ่งที่เจอคือ Null pointer exception แล้วชี้ไปที่ ผมนำ Coroutines มาใช้กับฐานข้อมูล

จนผมหมดหวังแล้วที่จะใช้มัน ยอมเสียประสิทธิภาพไปก่อนไว้อนาคตมาหาทางแก้

แต่แล้วผมก็นึกได้ว่า มันมี tech ที่มาใหม่ใช้แทนกันได้อยู่นะ

นั้นคือ Virtual Threads ด้วยความสามารถของ Kotlin ทำงานร่วมกับ Java ได้ 100%


ผมจึงนำมาใช้งานทันที ผลคือใช้งานได้แล้วไม่เจอปัญหาอะไรมากวนแล้ว

แต่ที่น่าตกใจสุดๆเลย มันทำงานประมวลผมได้โคตรเร็ว!!!! ใช้เวลาเฉลี่ย 0 ms มากสุดก็ 4 ms

เร็วมากๆ เร็วกว่า Coroutines อีกครับ แต่แลกกับใช้หน่วยความจำที่มากขึ้นกว่า Coroutines ใช้งาน

และมันยังเป็น tech ใหม่ที่ยังไม่เสถียร เมื่อเทียบกับ Coroutines ที่มันเสถียรแล้ว ผมก็รับได้

Virtual Threads มันเป็น tech ทางฝั่ง Java ที่ปล่อยออกมาใหม่ ประมาณ 4-5เดือน แล้วล่ะ ได้มาลองใช้ดูแล้ว รู้สึกดี


ผลการทดสอบ Virtual Threads vs Coroutines

Virtual Threads



Coroutines
Author Public Key
npub1ujevvncwfe22hv6d2cjv6pqwqhkvwlcvge7vgm3vcn2max9tu03sgze8ry