ข่าวขำๆ ที่คนโดนคงขำไม่ออก และเป็นประเด็นทางเทคนิคการพัฒนาโปรแกรมที่น่าสนใจครับ
เรื่องมีอยู่ว่าทีมพัฒนา Firefox ประสบปัญหา "โปรแกรมคอมไพล์ไม่ผ่าน" เพราะตัวซอร์สโค้ดมีขนาดใหญ่เกินไป จนหน่วยความจำบนเครื่องที่ใช้คอมไพล์ซึ่งเป็นเครื่องแบบ 32 บิตมีไม่พอ
ขั้นตอนการคอมไพล์ Firefox มาให้พวกเราๆ ใช้ดาวน์โหลดกัน สำหรับเวอร์ชันวินโดวส์จะทำบนเครื่องที่ใช้ระบบปฏิบัติการวินโดวส์แบบ 32 บิต ด้วย Microsoft Visual C++ 2005 ซึ่งใช้มานานแล้ว ส่วนเทคนิคการปรับแต่งประสิทธิภาพจะใช้เทคนิคที่เรียกว่า Profile-Guided Optimisation (PGO) ที่ช่วยรีดประสิทธิภาพได้ประมาณ 10% แต่ก็เปลืองหน่วยความจำระหว่างคอมไพล์มาก
ปัญหาคือซอร์สโค้ดของ Firefox (ไม่ใช่ตัวไฟล์ไบนารี) มีขนาดใหญ่มากขึ้นเรื่อยๆ จนหน่วยความจำที่ต้องใช้ขณะคอมไพล์มีเยอะเกินหน่วยความจำที่อ้างอิงได้แบบ 32 บิตเสียแล้ว ผลคือ Mozilla ต้องหยุดคอมไพล์ Firefox รุ่นที่กำลังพัฒนาชั่วคราว
วิศวกรของ Mozilla เสนอทางแก้ 3 แนวทาง
แนวทางที่เป็นไปได้คงเป็นการผสมกันระหว่างข้อ (1) และ (3) ครับ
ที่มา - mozilla.dev.platform, Softpedia
Comments
ขำดีไหมเนี่ย ปัญหาขององค์กรระดับนี้ -_-'
my blog
มันเป็นสิ้งที่ไม่ควรเกิดใช่ไหมอ่ะครับ
มือใหม่!! ใหม่จริงๆนะ
ทำ 3 อย่างพร้อมกันครับ
แต่ให้เลือก ผมว่าเลือกอัน 3 ตรงประเด็นสุด
I need healing.
ซ้ำ
samsung ใหญ่แค่ใหน ?
https://youtu.be/6Afpey7Eldo
1 กับ 2 ทำแล้วโปรแกรมเร็วขึ้นนะครับ
1 จะเร็วขึ้นมาก แต่งานช้าง
2 จะเร็วขึ้นนิดหน่อย งานก็น้อยตาม
3 เหมือนแก้ปัญหาชั่วคราวแต่ก็ง่ายและเร็วที่สุด
samsung ใหญ่แค่ใหน ?
https://youtu.be/6Afpey7Eldo
ผมคิดว่ามันก็เป็นปัญหาทางเทคนิคที่เกิดขึ้นได้ ไม่ใช่เรื่องบังเอิญหรือแปลกแต่อย่างใด
วิธีทางแก้ด้วยวิธีที่ 3 น่าจะเป็นการแก้ที่สาเหตุมากที่สุดครับ
ปัญหาแปลกๆ มันก็เกิดกับทุกองค์กร ต่างกันที่ว่าจะเปิดเผยหรือไม่
ย้ายไปใช้ Visual C++ 2010 เถอะ
เรื่องธรรมดานี่ครับ Chrome เองก็แนะนำให้ใช้ OS 64bits ในการ build เหมือนกัน
ตอนใช้ก็บริโภคแรม
ตอนคอมไพล์ก็บริโภคแรม
^
^
that's just my two cents.
???
Russia is just nazi who accuse the others for being nazi.
someone once said : ผมก็ด่าของผมอยู่นะ :)
ผมหมายถึงตอนใช้งาน เปิดแค่ 3แทป ซัดแรมไป 200+ Mb ละครับ
^
^
that's just my two cents.
ถ้าใช้เครื่อง 64 บิต การคอมไพล์แบบ 32 บิตยังสามารถอ้างหน่วยความจำมากกว่า 4GB (โดยอุปมา) ได้ด้วยเหรอครับ ผมนึกว่าตัวคอมไพล์สถาปัตย์ไหนก็อ้างได้แค่นั้นซะอีก (ร้างลาการเขียนโปรแกรมมาชาตินึง ไม่ถนัดอย่างแรง เลยไม่ค่อยเข้าใจ ขอผู้รู้มาอธิบายด้วยครับ จะได้เข้าใจข่าวหน่อย พอดีงงตรงข้อ 3)
คิดว่าเป็นที่ compiler นะครับ อาจจะรันบนเครื่อง 32bit แล้ว compiler ใช้แรมเกิน 4GB เลยไม่ยอมทำงาน
ถ้าเปลี่ยนไปใช้ compiler ที่ทำงานบน 64bit แต่กำหนด Target เป็น 32bit ก็น่าจะได้
ได้ 4 GB ต่อ process ครับ ซึ่งถ้าเป็น 32bit ทุก process รวมกันจะได้ไม่เกินประมาณ 3.0-3.5 ประมาณนี้(ตามจำนวนแรม ไม่นับ vm) และ process ละไม่เกิน 2GB
Russia is just nazi who accuse the others for being nazi.
someone once said : ผมก็ด่าของผมอยู่นะ :)
คิดไปเองหรือเปล่านะเรานี่
คือโลโก้มันเป็น หมาไฟโดนโลกทับตาย ตายทั้งท้องกลมโต อ้วนนั่นเอง หุหุ
4.เปลี่ยนไปใช้ Google chrome ให้หมดและยุบทีม :)
นึกไม่ออกเลยทีเดียวว่า source จะยาวขนาดไหน
ผมว่าที่มันยาว น่าจะเพราะไม่ได้สักแค่คอมไพล์เฉยๆ แต่เพราะมีการใช้เทคนิค Profile-Guided Optimization ที่อาศัยการบันทึกพฤติกรรมการทำงานจริงๆของโปรแกรมรุ่นตัวอย่าง เพื่อมาปรับแต่งโปรแกรมตัวจริงอีกที ซึ่งไอ้รันสองเด้ง แถมต้องเก็บสถิติตลอดนั่นน่าจะตัวเขมือบแรม ทำให้ใช้แรมเกิน 3G (ขีดจำกัดของระบบ 32-bit) ได้ง่ายๆ
จริงๆก็ไปหาเครื่อง 64-bit มาคอมไพล์ 32-bit ก็น่าจะได้ ถวายแรมไปหกถึงแปดกิ๊กฯ คงจะพอคอมไพล์สบายๆ
ในระยะยาวใช้วิธีแรกน่าจะดีสุด แถมยังช่วยลดเวลาการคอมไพล์ด้วย เพราะการแก้บางส่วน ไม่จำเป็นต้อง build ใหม่ทั้งก้อน
vc++ 2010 นี่มีประสิทธิภาพดีสุดแล้วหรอ
ไม่ได้อยู่ในแวดวงการ dev app พวกนี้ด้วยสิ แต่เหมือนว่าไม่ได้ยิน c compiler ตัวใหม่ๆหรือเด่นๆมาหลายยยยยยปีแล้ว
ถ้าใช้วิธีสุถดท้าย นี่แปลว่า เครื่อง เก่า ๆ ปิดประตูเลยสินะ
วิธีที่ 4. optimize กระบวนการ Profile-Guided Optimisation (PGO) ให้ใช้แรมน้อยลง ???
(ขำๆ นะครับ) ^ ^
เปิด /PAE จะได้ผลไหม แล้ว compiler มันรองรับ AWE ไหม
aka ohmohm
(ขอบ่นหน่อยครับ)ขนาดตอนพัฒนายังมีปัญหาเรื่องทรัพยากรไม่พอ
แล้วตอนปล่อยออกมา โปรแกรมจะกินทรัพยากรของ user เท่าไหร่ไม่อยากคิดเลย
เวอปัจจุบันแค่เปิดไม่กี่แท๊บก็ใช้แรมมหาศาล แต่ก็ยังช้า บางทีมีค้างด้วย ขนาดใช้แรม 3G
แค่พัฒนาโปรแกรม Browser แล้วต้องใช้ทรัพยากรมากขนาดนนี้
จนผมต้องอัพฮาร์ดแวร์ตามด้วย มันไม่เวริ์คเลยครับทรัพย์ผมจาง ทำยังกับเป็นเกม 3D -*-
ปัจจุบันนี้ถ้าไม่ติด Add-ons ที่ใช้ปัจจุบัน จะย้ายไป opera ถาวรเลย เพราะเร็วมากมาย
มันคนละเรื่องเดียวกันเลยครับ อย่าเอามาผสมกันสิครับ
ถ้าพูดแบบย่อๆ ... ยิ่งใช้พลังงานในการคอมไพล์มากเท่าไหร่ โปรแกรมที่ได้ยิ่งใช้พลังงานน้อยลงเท่านั้นครับ