ขัดใจวัยรุ่น


นั่งดูเว็บเกี่ยวกะพวก Java performance tuning .. แล้วก็มีความรู้สึกขัดกันเองในหัว

คือ ถ้าอยากให้โปรแกรม เล็ก เร็ว ใช้หน่วยความจำน้อยๆ ก็มักจะต้องแลกด้วยการทำ ‘ผิดหลักการเขียนโปรแกรม’

ตัวอย่างเช่น การใช้ accessor method (พวก get นู่น get นี่น่ะ) เนี่ย พอแปลงเป็น bytecode แล้ว มันซับซ้อนกว่าการประกาศตัวแปรเป็น public แล้วเรียกใช้ตรงๆ เค้าเลยแนะนำให้ประกาศเป็น public ไปเถอะ
หรือว่า การทำสืบทอดคลาสกันลงมา เพื่อจะได้ไม่ต้องเขียนโค้ดซ้ำๆ กัน กลับเป็นเรื่องที่ผู้เชี่ยวชาญเรื่อง performance tuning ไม่แนะนำ บอกว่าเขียนโค้ดซ้ำๆ กันไปเถอะ ดีกว่า .. อ้าว
ฯลฯ

อยากให้โปรแกรมมันเร็วๆ นะ แต่เขียนตามแบบนั้นแล้วมัน .. ขัดใจ -_-“

ลองทำคลาส MiniString ใช้ใน LekLekDict แทนการใช้ byte[] + คลาส ByteArray และแทน String หลายๆ ที่ — ลดการใช้หน่วยความจำไปได้ประมาณ 9-10 KB ไม่รู้ว่าคุ้มมั๊ย เหมือนกับว่ามันกิน CPU cycle เยอะขึ้น
ว่าจะลองแยกเป็น MiniString กะ MiniStringBuffer ตอนนี้มันปนๆ กันอยู่ — method ส่วนใหญ่ ชื่อ/การใช้ เหมือนกับ String มาตรฐาน แต่ว่าเก็บข้างในเป็น byte (1 ไบต์) แทน char (2 ไบต์)
ไม่รู้ว่าทำแบบนี้ดีรึเปล่า หรือน่าจะใช้ของมาตรฐานดีกว่า? ..แต่พูดถึงข้อมูลทุกอย่างในโปรแกรม มันไบต์เดียวหมดอ่ะ

พยายามทำให้กดดูคำความหมายจากรายการคำศัพท์ (ListBox) แล้วยังกลับไปที่หน้ารายการคำศัพท์เดิมได้. ตอนนี้ทำได้แล้ว แต่ว่ามันไม่จำตำแหน่งเดิมให้ + กด back แล้วมันดันกลับไปที่หน้าความหมาย (= back วนลูป กลับไปหน้ารับอินพุตไม่ได้ .. กรรม)

เนื่องจากแก้โค้ดหลายที่ไปหน่อย ตอนนี้โปรแกรมเลยเพี้ยนๆ หน้าจอมันไม่ยอมรีเฟรช -_-” (ยังไม่ได้ลองในเครื่องจริง แต่คิดว่ามันคงเพี้ยนเหมือนกัน)

เอ่อ ..


One response to “ขัดใจวัยรุ่น”

  1. ทำงานจริงได้อาจจะไม่สวยสวยอาจจะทำงานจริงไม่ได้พูดถึงทฤษฎี

Leave a ReplyCancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Exit mobile version