มาลดน้ำหนัก Firefox 3.5 ให้วิ่งตัวปลิวกัน
posted on 21 Jul 2009 10:10 by stgizmo in ComputerNInternetทาง Mozilla เพิ่งอัพเดต Firefox 3.5.1 ไปได้ไม่นาน เพื่อแก้ปัญหา TraceMonkey และปัญหา Firefox 3.5 เปิดตัวตอนแรกช้า ซึ่งมีปัญหาเฉพาะกับวิบนโดวส์ (อ่านข่าวได้จากคุณนินคุง) ใครยังไม่ได้อัพเดตก็กด อัพเดตกันเลย เพราะเป็นการแก้บักสำคัญ
ถ้าใครอัพเดตเป็น Firefox 3.5.1 แล้วรู้สึกเจ้าหมาไฟมันยังอืด ๆ อยู่ ยังเร็วและแรง ตอนรันครั้งแรก (coldstart up) ไม่พอ ก็ลองมาลดน้ำหนัก เจ้าหมาไฟตัวนี้ ที่แอบกินจุจนพุงยื่นกัน ด้วยวิธีการ defragment sqlite database
ตั้งแต่ Firefox 3 ขึ้นไป ได้มีการใช้ SQLite database (ฐานข้อมูล sql ตัวจิ๋ว โดยไม่ต้องพึ่งพา server) มาช่วยจัดเก็บข้อมูล ในส่วนของ bookmarks, history ซึ่งได้เพิ่มเก็บข้อมูลเว็บที่เราเคยเข้าไปไว้ประมาณ 90 วัน ซึ่งจะช่วยให้ awesome bar ค้นหาข้อมูลได้ประโยชน์เต็มที่ เมื่อใช้ไปเรื่อย ๆ เจ้าฐานข้อมูลนี้ มันก็จะทำให้ firefox พุงยื่นขึ้นเรื่อยๆ โดยไม่รู้ตัว (ขนาดไฟล์โตขึ้นนั่นเอง) เนื่องจากมี fragment และ empty spaces เกิดขึ้นในฐานข้อมูล ยิ่งถ้าเก็บ bookmarks ไว้เป็นจำนวนมากแล้วก็หละยิ่งโตขึ้นทวีคูณ เป็นเหตุให้เวลาเปิด Firefox ครั้งแรกจะอืดขึ้นเรื่อยๆ เพราะต้องเสียเวลาไปโหลด database ที่ขนาดใหญ่ขึ้นโดยไม่จำเป็น
โดยตัว Firefox เองตอนนี้ ยังไม่สามารถที่จะ defragment SQLite database ได้เอง อัตโนมัติ ดังนั้นจึงเป็นหน้าที่พวกเรา จับเจ้า Firefox มาเข้าคอร์สลดน้ำหนักกันด้วย วิธีการดังต่อไปนี้ (ทำได้กับระบบปฎิบัติการ Linux, Windows, and Mac OS X)
1. ไปโหลด sqlite3 โดยเลือก Precompiled Binaries ตาม platform ที่ใช้อยู่ ถ้าเป็นวินโดวส์ก็ตัวนี้
2. unzip file "sqlite3.exe" ไปยัง folder ที่เก็บ profile ของ Firefox ซึ่งจะเป็นไปตาม os ที่ใช้อยู่ โดยดูวิธีการหาโฟลเดอร์ได้จากเว็บหมาไฟ
3. ปิด Firefox ทุกตัวที่เปิดใช้อยู่ (ไม่เช่นนั้นจะเกิด error database มันจะถูกล็อคอยู่ เราจะ vacuum มันไม่ได้)
4. ให้ไปที่ Profile folder ของไฟรฟอกซ์ แล้วรันคำสั่ง
sqlite3 [SQLite database] VACUUM
โดยเปลี่ยน [SQLite database] ด้วยชื่อไฟล์ที่มีนามสกุล .sqlite ตัวอย่างเช่น places.sqlite (ตัวนี้มักจะมีขนาดใหญ่ที่สุด) แล้วก็ไล่ทำไปเรื่อย ๆ ทุกไฟล์นามสกุล .sqlite
สำหรับผู้ใช้วินโดวส์ เราสามารถทำการลดขนาดฐานข้อมูลได้ในครั้งเดียว โดย
- ไปที่ start -> run -> พิมพ์ cmd กด enter
- ไปที่ profile folder ของ firefox
- แล้ว รันคำสั่ง for %a in (*.sqlite) do (sqlite3 %a vacuum)
- ถ้าทำถูกต้อง โปรแกรม sqlite3.exe จะทำงาน โดยมีรายงานว่าได้ทำการ defragment ฐานข้อมูลอะไรไปบ้าง (ถ้ามีขึ้นว่า database lock แปลว่ายังปิด firefox ไม่ครบ)
อันนี้เป็นผลจากเครื่องผมเอง ลดขนาดไปได้โอเคเลยทีเดียว

ก่อน
| Machine | places.sqlite size before vacuum | places.sqlite size after vacuum | Cold startup Before | Cold Startup After |
| Machine 1: 1 window, 20 tabs | 10 MB | 9 MB | 11 s | 8 s |
| Machine 2: 3 windows, 25 tabs | 40 MB | 27 MB | 10 s | 7 s |
เรามาดูกัน หลังจากเข้าคอร์ส slim up ให้กับ Firefox 3.5 แล้วเป็นยังไง พระเจ้าจอร์จ มันยอดมากขนาดไหน
Ferdinand
My
places went from 46MB to 19MB and my urlclassifier went from 31 to
26MB. I have never had any problems with Firefox’s startup speed but it
might be slightly faster. But it would be from 2 seconds to less than 2
seconds…
My places is big because I set my history to 600 days so I can always look up where I have been.
Jay R.
I don’t have the exact numbers, but I do have approximate.
I’ve been using FF 3.1 (3.5) nightlies since alpha. My places.sqlite file was over 40MB. After vacuum it’s 2MB. My startup time went from ~10s, to ~2s.
Incredible.
GraemeL
Top tip!
Places from almost 50Mb down to 15Mb. Startup from 15s to 5s.
แล้วของท่านอื่นๆ ทดลองแล้วได้ผลเป็นยังไงบ้าง น้องหมาไฟลดพุงไปได้แค่ไหน ช่วยอวดให้ชมใน comment กันด้วยนะครับ
Tip นี้ อ้างอิงข้อมูลจาก mozillalink.org
update : ใครไม่ถนัด ใช้ command line เห็นว่ามันยุ่งยาก แนะนำให้ใช้โปรแกรม BleachBit แทนครับ ง่ายกว่าเยอะ


#1 By จางหยงเสียงจิ้งจอก4หู on 2009-07-23 12:37