ย้ายบล็อกไปที่ bact.cc แล้วนะครับ

พ.ร.บ.คอมพิวเตอร์
หยุด ร่างพ.ร.บ.คอมพิวเตอร์
พื้นที่เก็บข้อมูลออนไลน์ ฟรี 2GB จาก Dropbox (sync กับ Windows, Linux, Mac, iPhone, Android ฯลฯ ได้)

2004-10-05

LekLekDict กันต่อ

ว่างมาก (ทำเหมือน), เมื่อคืนเลยนั่งแกะต่อ

แก้โน่นแก้นี่ ลองจัด package เปลี่ยนโค้ดเล่น ทำพังไปหลายรอบ
เป็นการรื้อฟื้น J2ME อีกครั้งนึง

ตอนแรกว่าจะลองทำ locale แบบทำให้ localize ได้ง่ายๆ จะใช้ ResourceBundle .. ปรากฏว่า java.lang ใน CLDC 1.0 มันไม่มีแฮะ -_-" (ไม่ก็ MIDP 1.0 นี่แหละ) .. ยังไม่ได้ลองว่าใน CLDC 1.1 / MIDP 2.0 มันมีรึเปล่า แต่ไม่เอาละ ไปเล่นอย่างอื่นดีกว่า

ดูๆ ByteArray อยู่ เพราะลอง profiling แล้ว พบว่าใช้คลาสนี้เยอะมาก โดยเฉพาะเมทธอด getBytes() ซึ่งตัวนี้สร้างออบเจ็กต์ byte[] กันมหาศาลมาก
ถ้าจำไม่ผิด เฉพาะ byte[] ทั้งหมดนี่ ก็กินไป 48% ของหน่วยความจำแล้ว (คิดรวมทั้งหมด ตั้งแต่เริ่มโปรแกรม จนจบโปรแกรม โดยการทดสอบหาคำว่า "art" -- มี byte[] ทั้งหมด 16700 ออบเจ็กต์ (ไม่ใช่จำนวนออบเจ็กต์ในขณะใดขณะหนึ่งนะ เป็นจำนวนที่สร้างขึ้นมาทั้งหมด))
และประมาณ 70% ของการประมวลผลทั้งหมด จะไปตกอยู่ที่ getBytes()
โดยที่ประมาณครึ่งนึงของ 70% นั้น จะถูกเรียกจาก equals()

คิดว่าถ้าลดอะไรตรงนี้ไปได้ โปรแกรมน่าจะเร็วขึ้น
จริงๆ ตอนนี้มันก็ไม่ช้าอะไรหรอก ลองบน Sony Ericsson K700i มันก็ไม่รู้สึกว่าช้าน่ะ (คนเขียนเค้าทำมาดี ฮ่ะๆ)
แต่มันไม่มีอะไรทำน่ะ เลยเอามาดูเล่นๆ รื้อฟื้นความจำเรื่อง J2ME เฉยๆ

ใช้ NetBeans 4.0 Beta 2 คู่กับ Mobility Pack ดีทีเดียว :)
(อัดแรมไปเยอะๆ เดี๋ยวดีเอง :P -- ถ้าแรมน้อย/เครื่องช้า อย่าคิดไปลอง memory monitor เชียว มันอืดมาก ประมาณว่าปกติโปรแกรมรันความเร็วเท่าไหร่ ให้คูณ 10 เท่า จะได้ความอืดระหว่างทำการ monitor -- นี่เครื่องไม่เร็ว แต่อาศัยแรมเยอะ เลยไม่ค่อยห่วงมันแครช ช้าๆ น่ะรอได้ อย่าแครชละกัน -- แต่มันเจ๋งดีนะ มีกราฟ มีอะไรให้ดูเยอะดี)

No comments: