Theppitak's blog

My personal blog.

31 มีนาคม 2548

Speeding Up GNOME

กลับถึงขอนแก่นด้วยความเพลีย กับอากาศ 37 องศาเซลเซียส และงานทางบ้านที่รอให้มาทำต่อ อ๋อย.. อย่าเพิ่งเร่งเลยแม่ เวียนหัวจะแย่ ขอพักวันนึงก่อนนะ (อาการคล้ายๆ กับจะมีปัญหาเรื่องสายตา เพราะวิงเวียนแถวๆ หว่างคิ้ว ทำงานต่อไปไม่ไหว จนต้องพักงีบ)

อย่างไรก็ดี หลังจากไม่ได้คอมไพล์ GNOME มาอาทิตย์กว่าๆ วันนี้เลยถือโอกาส update CVS แล้วสั่งคอมไพล์ทิ้งไว้ เย็นๆ ลุกมาเช็กข่าว เจอคนโพสต์ที่ OSNews เกี่ยวกับ การเร่งความเร็ว GNOME โดยอาศัย linker option "--as-needed" ซึ่งจะทำให้ไลบรารีที่ต้องใช้จริงๆ เท่านั้น ที่จะถูกมาร์กว่า NEEDED และถูกโหลดตอนใช้งาน แล้วก็ปรากฏว่า มันลด dependency ของโปรแกรมต่างๆ ใน GNOME ลงได้อย่างฮวบฮาบ เช่น เขายกตัวอย่าง gnome-terminal ที่ลดจำนวน dependency ลงจาก 52 ไลบรารี เหลือแค่ 21 เท่านั้น!

จากความเห็นในข่าว เห็นบอกว่า Ubuntu ก็อาจจะพิจารณาใช้วิธีนี้

โฮะๆ เสียดาย เพิ่งคอมไพล์เสร็จ ไว้รอบหน้าต้องลองมั่งแล้ว :D

Update: Fedora ก็กำลังถกเรื่องนี้เหมือนกัน มี ผลการทดสอบ กับ planner และ dia เพิ่มด้วย

4 ความเห็น:

  • 1 เมษายน 2548 เวลา 02:26 , Blogger bact' แถลง…

    อ่านใน OSNews เค้าเตือนว่า ถึงแม้ว่าโปรแกรมที่คอมไพล์ด้วยวิธีนี้ มันจะรันได้ไม่มีปัญหาอะไร
    แต่ไม่มีอะไรรับประกันว่า โปรแกรมอื่นๆ ที่เอามาเชื่อมกับโปรแกรมที่คอมไพล์ด้วย --as-needed จะรันได้

    คือบาง API นี่อาจจะต้องใช้ lib ที่ถูกเอาออกไป
    (ไม่ได้ใช้ตอนคอมไพล์ แต่มาใช้ตอนหลัง)

    การคอมไพล์แบบนี้ ผมว่าน่าจะเหมาะกับ .. ดิสโทรที่ เออ จะไม่เอาอะไรเข้าอะไรออกละนะ จะใช้แค่นี้แหละ

    หรือสำหรับระบบที่มีพวก apt, portage ก็คงไม่เป็นไร
    เพราะเวลาจะลงอะไรเพิ่ม มันก็คงเช็คให้อีกรอบอยู่แล้ว

    แต่อย่างการลง plug-in ของโปรแกรม (ซึ่งแยกส่วนกันกับพวก apt) นี่ อาจจะอันตราย

    เช่น สมมติเราคอมไพล์ Firefox เกิด lib บางตัวที่จำเป็นสำหรับการเชื่อมกับ Java plug-in ถูกเอาออกไป .. เราก็ยังใช้ Firefox ได้ปกติ เหมืิอนไม่มีอะไรเกิดขึ้น ... จนกว่าวันนึง เราพยายามจะติดตั้ง Java plug-in นั่นแหละ แล้วมันไม่ได้

    เป็นไปได้รึเปล่าครับ กรณีแบบนี้?

    เร็วขึ้น แต่เสี่ยงกับการ break compatibility ... อืมม

     
  • 1 เมษายน 2548 เวลา 02:29 , Blogger bact' แถลง…

    แต่ dependencies นี่มันปวดหัวจริงๆ
    วันก่อนพยายามจะลง GTK+ กับ gnome lib อีกสองสามตัวบนเครื่อง Windows
    เพราะอยากลองคอมไพล์ libgdiplus ของ Mono
    ก็เลือกๆ ใน cygwin
    เอ๊ะ ทำไมมันนานจัง โหลดอะไรเยอะแยะวะ

    ปรากฏว่า มันลาก GNOME มาด้วยทั้งตัว พร้อมกับ X11 เฮ้ย บ้าไปแล้ว! -_-"

     
  • 1 เมษายน 2548 เวลา 09:22 , Blogger Thep แถลง…

    อ่านเจอคำเตือนเรื่อง plug-in ที่ bact' พูดถึงเหมือนกันครับ คงต้องพิจารณาเป็นกรณีๆ ไป ไม่ใช่ใส่ CFLAGS หว่านลงไปทั้งหมด

    พวกที่มี plug-in นี่ก็มีไม่กี่ตัวใน GNOME เท่าที่ดูอย่าง pango ก็ดูเหมือนจะมี configure option ให้จัดการเรื่อง dependency อยู่แล้วด้วย ไว้ต้องแกะดูอีกที

     
  • 1 เมษายน 2548 เวลา 09:43 , Blogger Thep แถลง…

    bact' wrote:
    | เช่น สมมติเราคอมไพล์ Firefox เกิด lib
    | บางตัวที่จำเป็นสำหรับการเชื่อมกับ Java
    | plug-in ถูกเอาออกไป .. เราก็ยังใช้
    | Firefox ได้ปกติ เหมืิอนไม่มีอะไรเกิดขึ้น ...
    | จนกว่าวันนึง เราพยายามจะติดตั้ง Java
    | plug-in นั่นแหละ แล้วมันไม่ได้
    |
    | เป็นไปได้รึเปล่าครับ กรณีแบบนี้?

    คิดว่ากรณีนี้ไม่มีปัญหานะครับ (สำหรับส่วนการเชื่อม
    plug-in) ปัญหามันจะอยู่ที่ฟังก์ชันที่ plug-in
    เรียกใช้ในตัวไลบรารี ที่อาจจะไม่ถูกโปรแกรมหลัก
    เรียกใช้เลย อย่างนั้นมากกว่า แล้วฟังก์ชันพวกนั้น
    ก็อาจไปเรียกใช้ไลบรารีที่ถูกตัดออก

     

แสดงความเห็น (มีการกลั่นกรองสำหรับ blog ที่เก่ากว่า 14 วัน)

<< กลับหน้าแรก

hacker emblem