Most popular
-
Trigger คืออะไร? ท่านที่เคยเขียนโปรแกรม และเคยใช้ Event handle ก็จะนึกถึงการทำงานของ Trigger ไม่ยาก Trigger ก็คือ Code คำสั่ง SQL ที่ถูกสร...
-
MySQL Workbench ที่ผู้เขียนใช้ทำตัวอย่างเป็น Version 5.2.34 CE สำหรับ Windows 32 bit หรือตัวใหม่กว่าก็ได้ครับ ดาวน์โหลดได้ที่นี่ http://www...
-
คนที่มีภาพใน facebook เยอะๆก็คงจะต้องการย้ายภาพไปมา บางทีก็เอาภาพบนกระดานเก็บลงอัลบั้ม บางทีก็หาไม่เจอว่าจะย้ายได้ยังไง การย้ายอัลบั้มไม่ยา...
-
Tier คำนี้เมื่อแปลออกมาจะแปลได้ว่า "ชั้น" Tier ในวงการ Software ก็มีความหมายคล้ายกัน สำหรับท่านที่ยังไม่เข้าใจขอแนะนำง่ายๆ โดยให้...
-
หลายท่านคงเคยเล่น หรือไม่ก็รู้จักชื่อเสียงเรียงนามของเกมนี้กันบ้าง หลังจากที่โด่งดังมาจากวงการ Tablet และ Smart Phone ก็ได้ออก Version ที่เล...
วันพฤหัสบดีที่ 29 กันยายน พ.ศ. 2554
การรันคำสั่งด้วย Parallel ใน .net 4
ซึ่งใน .net 4 จะมี library ที่ชื่อ System.Threading.Tasks ให้เราใช้ในการจัดการกับ Task หรือคำสั่งต่างๆ เช่นเราต้องการจัดการกับเมธอดหลายๆ
เมธอดเพื่อให้ทำงานพร้อมกัน(Concurrency) เช่นมีเมธอด
A,B,C เราก็ใช้
Parallel.Invoke(A,B,C);
หรือ
Parallel.Invoke(()=>A(),
()=>B(),
()=>C()
);
ตัวอย่างการใช้งาน Parallel.Invoke เริ่มแรกให้เราทำการ using System.Threading.Tasks ก่อนแล้วเขียนคำสั่งต่างๆดังนี้
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication22
{
class Program
{
static void Main(string[] args)
{
Parallel.Invoke(
() => A(),
() => B(),
() => C()
);
Console.ReadLine();
}
static void A()
{
Console.WriteLine("A");
}
static void B()
{
Console.WriteLine("B");
}
static void C()
{
Console.WriteLine("C");
}
}
}
ซึ่งผลลัพธ์เราจะได้
A
B
C
ในตัวอย่างนี้จะเป็นการสั่งให้โปรแกรมทำการเรียกใช้เมธอดทั้งสามพร้อมๆกัน ซึ่งถ้าเรามีเมธอดมากกว่านี้เราก็สามารถเรียกใช้ได้เหมือนกับการเรียกเมธอดในตัวอย่างนี้
ถึงแม้ว่าจะมีการเรียกใช้เมธอดให้เริ่มต้นทำงานพร้อมกันในแบบ Concurrency ก็ตามแต่เวลาที่ใช้ในการทำงานตามคำสั่งข้างในเมธอดแต่ละเมธอดจะไม่เท่ากันซึ่งเราสามารถ
วัดเวลาในการทำงานได้โดยใช้ Stopwatch ดังนี้
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
using System.Threading;
namespace ConsoleApplication22
{
class Program
{
static void Main(string[] args)
{
Parallel.Invoke(
() => A(),
() => B(),
() => C()
);
Console.ReadLine();
}
static void A()
{
var watch = Stopwatch.StartNew();
Console.WriteLine("A");
Console.WriteLine("elapsed time of A is " + watch.Elapsed.TotalSeconds);
}
static void B()
{
var watch = Stopwatch.StartNew();
Console.WriteLine("B");
Console.WriteLine("elapsed time of B is " + watch.Elapsed.TotalSeconds);
}
static void C()
{
var watch = Stopwatch.StartNew();
Console.WriteLine("C");
Console.WriteLine("elapsed time of C is " + watch.Elapsed.TotalSeconds);
}
}
}
ซึ่งผลลัพธ์เราจะได้ดังรูป
จากรูปที่ 1 ถ้าเราเพิ่ม Thread.Sleep เข้าไปที่เมธอด B โดยให้ทำการ sleep เป็นเวลา 4 วิ ผลลัพธ์ที่ได้เราจะเห็นเวลาที่เมธอด B ทำงานตั้งแต่เริ่มต้น
ถึงสิ้นสุดนานกว่าเมธอดอื่นที่ไม่ได้ใช้ Thread.Sleep และจะทำงานเสร็จสิ้นเป็นเมธอดสุดท้ายด้วยดังนี้
static void B()
{
var watch = Stopwatch.StartNew();
Thread.Sleep(4000);
Console.WriteLine("B");
Console.WriteLine("elapsed time of B is " + watch.Elapsed.TotalSeconds);
}
ผลลัพธ์เราจะได้ดังรูป
ซึ่งจากตัวอย่างนี้เราจะเห็นว่าถึงแม้เริ่มต้นทำงานพร้อมกันแต่ระยะเวลาหรือความเร็วในการประมวลผลคำสั่งแต่ละเมธอดจะไม่เท่ากันขึ้นอยู่กับราย
ละเอียดภายในเมธอดว่ามีมากน้อยเพียงใดซึ่งถ้าเราเห็นว่าเมธอดไหนทำงานช้ามากเราก็สามารถแบ่งการทำงานของเมธอดนั้นออกเป็น parallel หรือสั่งให้ทำงานแบบคู่ขนานได้
ซึ่งจะทำให้เมธอดนั้นๆใช้เวลาที่น้อยลงหรือมีการทำงานที่เร็วขึ้น
การใช้ Task
ก่อนหน้านี้เราได้ใช้ Parallel.Invokeในการเรียกเมธอดทำงานพร้อมๆกัน ซึ่งในส่วนนี้จะมีอีกวิธีที่สามารถสั่งให้โปรแกรมทำงานพร้อมๆกันด้วยคลาสที่ชื่อ Task
ซึ่งในการใช้ Task นั้นไม่ยุ่งยากโดยถ้าเรามีหลายๆเมธอดแล้วต้องการให้เมธอดเหล่านี้เริ่มทำงานพร้อมๆกัน เราสามารถแบ่งการทำงานของเมธอดออกเป็น Task แต่ละ Task
ไปได้ เช่นมี 3 เมธอดคือ A,B,C ถ้าต้องการแบ่งเป็น Task เราก็เขียนได้ดังนี้
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
using System.Threading;
namespace ConsoleApplication22
{
class Program
{
static void Main(string[] args)
{
var t1 = new Task(()=>A());
var t2 = new Task(() => B());
var t3 = new Task(() => C());
t1.Start();
t2.Start();
t3.Start();
Task.WaitAll(t1, t2, t3);
Console.WriteLine("Finished all Tasks");
Console.ReadLine();
}
static void A()
{
var watch = Stopwatch.StartNew();
Console.WriteLine("A");
Console.WriteLine("elapsed time of A is " + watch.Elapsed.TotalSeconds);
}
static void B()
{
var watch = Stopwatch.StartNew();
Console.WriteLine("B");
Console.WriteLine("elapsed time of B is " + watch.Elapsed.TotalSeconds);
}
static void C()
{
var watch = Stopwatch.StartNew();
Console.WriteLine("C");
Console.WriteLine("elapsed time of C is " + watch.Elapsed.TotalSeconds);
}
}
}
ในตัวอย่างนี้เริ่มแรกให้เราสร้าง Task ขึ้นมาก่อนโดยภายใน Task ก็จะมีการกำหนดเมธอดที่ต้องการใช้งาน Task จากนั้นเรียกคำสั่ง Start เพื่อทำการสั่งให้เริ่มทำงาน Task
จากนั้นจะมีคำสั่ง WaitAll เพื่อรอให้ทุก Task ทำงานเสร็จก่อนแล้วถึงจะทำการแสดงค่า Finished all Tasks
ซึ่งตรง WaitAll นี้เราสามารถกำหนดเวลาเพื่อให้โปรแกรมทำการรอได้เช่นถ้าการทำงานของ Task ทุก Task เกินเวลาที่กำหนดไว้ก็อาจจะให้แจ้งเตือนขึ้นมาว่า
Task ที่ทำงานนั้นใช้เวลาเกินกว่าทีกำหนด ซึ่งให้เขียนดังนี้
static void Main(string[] args)
{
var t1 = new Task(()=>A());
var t2 = new Task(() => B());
var t3 = new Task(() => C());
t1.Start();
t2.Start();
t3.Start();
if (!Task.WaitAll(new Task[] { t1, t2, t3 }, 4000))
{
Console.WriteLine("elapsed time > 4000 ms");
}
Console.WriteLine("Finished all Tasks");
Console.ReadLine();
}
ซึ่งในตัวอย่างนี้ถ้าเรารันโปรแกรมเราจะยังไม่เป็นคำสั่งในส่วนของ Console.WriteLine("elapsed time > 4000 ms");
เนื่องจากว่าทุก Task ใช้เวลาน้อยกว่า 4000 ms แต่ถ้าเราเพิ่ม Thread.Sleep ในเมธอดใดเมธอดหนึ่งให้ทำการ Sleep เป็นเวลา 5000 ms เช่นเพิ่ม
ตรงเมธอด A ดังนี้
static void A()
{
var watch = Stopwatch.StartNew();
Thread.Sleep(5000);
Console.WriteLine("A");
Console.WriteLine("elapsed time of A is " + watch.Elapsed.TotalSeconds);
}
ผลลัพธ์ที่ได้เราจะได้ดังรูป
ที่มา : คุณ paedotnet http://www.codetoday.net/default.aspx?g=posts&t=2945
วันอังคารที่ 27 กันยายน พ.ศ. 2554
ปัญหาการใช้ inserted,deleted ในการสร้าง Trigger (SQL Server 2000)
ปัญหานี้จะเกิดกับ Query ที่อยู่ใน Trigger ที่ไม่รู้จักกับ inserted หรือ deleted
Key Word 2 ตัวนี้มีความหมายคือ
DELETE FROM TABLE WHERE (TABLE_ID = deleted.ID)
เมื่อต้องการจะ Execute จะเกิดปัญหาคือ การมองว่า inserted หรือ deleted เป็น Table หนึ่ง ที่ไม่มีอยู่จริง
"The column prefix 'deleted' does not match with a table name or alias name used in the query."
การแก้ไขคือประกาศตัวแปรมารับค่าของข้อมูลที่ต้องการใช้งานจาก inserted หรือ deleted ก่อน เช่น
//ประกาศตัวแปรมารับค่าจาก Field
DECLARE @number char(4) , @open_id char(11)
//เอาตัวแปรไปรับค่าเก็บไว้ เพื่อใช้งานใน Query หลังจากนี้
SELECT @number=NUMBER,@open_id=OPEN_ID FROM deleted
Code ด้านล่างนี้เป็นตัวอย่างการสร้าง trigger ให้ VIEW สามารถลบข้อมูลได้
CREATE TRIGGER delFormNum
ON dbo.VIEW_TKRNUMBERSTK
INSTEAD OF DELETE
AS
BEGIN
DECLARE @number char(4) , @open_id char(11)
SELECT @number=NUMBER,@open_id=OPEN_ID FROM deleted
DELETE FROM TKR_OPENRECEIPTDTL
WHERE (NUMBER = @number) AND (RECEIPT_CODE IS NULL);
DELETE FROM TKR_OPENRECEIPT
WHERE (OPEN_ID = @open_Id);
COMMIT;
END
GO
Key Word 2 ตัวนี้มีความหมายคือ
- INSERTED ก็คือข้อมูลปัจจุบันที่เพิ่งนำเข้ามาใน Table
- DELETED ก็คือข้อมูลที่เพิ่งจะลบออกไป หรือเมื่อมีความต้องการที่จะลบ
DELETE FROM TABLE WHERE (TABLE_ID = deleted.ID)
เมื่อต้องการจะ Execute จะเกิดปัญหาคือ การมองว่า inserted หรือ deleted เป็น Table หนึ่ง ที่ไม่มีอยู่จริง
"The column prefix 'deleted' does not match with a table name or alias name used in the query."
การแก้ไขคือประกาศตัวแปรมารับค่าของข้อมูลที่ต้องการใช้งานจาก inserted หรือ deleted ก่อน เช่น
//ประกาศตัวแปรมารับค่าจาก Field
DECLARE @number char(4) , @open_id char(11)
//เอาตัวแปรไปรับค่าเก็บไว้ เพื่อใช้งานใน Query หลังจากนี้
SELECT @number=NUMBER,@open_id=OPEN_ID FROM deleted
Code ด้านล่างนี้เป็นตัวอย่างการสร้าง trigger ให้ VIEW สามารถลบข้อมูลได้
CREATE TRIGGER delFormNum
ON dbo.VIEW_TKRNUMBERSTK
INSTEAD OF DELETE
AS
BEGIN
DECLARE @number char(4) , @open_id char(11)
SELECT @number=NUMBER,@open_id=OPEN_ID FROM deleted
DELETE FROM TKR_OPENRECEIPTDTL
WHERE (NUMBER = @number) AND (RECEIPT_CODE IS NULL);
DELETE FROM TKR_OPENRECEIPT
WHERE (OPEN_ID = @open_Id);
COMMIT;
END
GO
วันจันทร์ที่ 26 กันยายน พ.ศ. 2554
GPU (Graphics Processing unit) ตัวประมวลผลของการ์ดจอ
Display Adapter ที่เรียกกันติดปากว่าการ์ดจอ หรือการ์แสดงผล |
GPU ATI |
อย่างไรก็ตามวงจรแสดงผลเหล่านี้มักมีความสามารถด้านสามมิติค่อนข้างจำกัด แต่ก็เหมาะสมกับงานในสำนักงาน, workstation(สถานีงานเป็นคำที่ใช้อธิบายสมรรถนะอันยิ่งใหญ่ของไมโครคอมพิวเตอร์ ที่สามารถทำงานพร้อมกันได้หลายงาน (multitasking) ส่วนมากจะใช้ในเรื่องของการออกแบบ (CAD) นั่นก็หมายถึงว่า สถานีงานนี้จะต้องมีหน่วยความจำขนาดใหญ่ มีหน่วยเก็บข้อมูลขนาดพิเศษ มีตัวปรับภาพชั้นยอด มีจอภาพชั้นหนึ่ง และที่สำคัญคือมีตัวประมวลผลที่ทำงานได้เร็วมาก ๆ เช่น RISC ส่วนใหญ่ สถานีงานจะใช้ระบบปฏิบัติการยูนิกซ์ (UNIX) และ โอเอส/ทู (OS/2) มีบางแห่งที่ใช้เครื่องแมคอินทอชชนิดที่มีประสิทธิภาพในการทำงานสูง ๆ อย่างไรก็ตาม ในอีกความหมายหนึ่ง สถานีงานอาจหมายถึงเพียงไมโครคอมพิวเตอร์แต่ละตัวในระบบเครือข่าย), GAME CONSOLE เป็นต้น
GPU NVIDIA |
สำหรับผู้ที่ต้องการความสามารถด้านภาพสามมิติประสิทธิภาพสูง เช่น ใช้เพื่อเล่นเกมคอมพิวเตอร์ ฮาร์ดแวร์ยังอยู่ในรูปของการ์ดที่ต้องเสียบเพิ่มเพื่อให้ได้ภาพเคลื่อนไหวที่เป็นสามมิติที่สมจริง ในทางกลับกัน การใช้งานบางประเภท เช่น งานทางการแพทย์ กลับต้องการความสามารถการแสดงภาพสองมิติที่สูงแทนที่จะเป็นแบบสามมิติ เดิมการ์ดแสดงผลแบบสามมิติอยู่แยกกันคนละการ์ดกับการ์ดแบบสองมิติและต้องมีการต่อสายเชื่อมถึงกัน เช่น การ์ด Voodoo ของบริษัท 3dfx ซึ่งปัจจุบันไม่มีแล้ว
ตำแหน่งของ GPU On board |
ที่มา : http://forum.dekitclub.com/index.php/topic,1623.0.html
วันศุกร์ที่ 16 กันยายน พ.ศ. 2554
ทำให้ Windows 32 bit เห็น Ram มากกว่า 4 GB
ปัญหาของวินโดว์ส 32 บิตที่มองเห็นหน่วยความจำ 4GB (หรือมากกว่า) ไม่เต็มความจุ
กำลังจะหมดไปด้วยเทคนิค PAE และวิธีย้ายตำแหน่งอ้างอิง
เหตุใด? ระบบปฏิบัติการ 32 บิต ถึงมองเห็นหน่วยความจำได้ไม่เต็มความจุ
หน่วยความจำ ประกอบด้วยหน่วยเก็บข้อมูลย่อยๆ แต่ละหน่วยเก็บข้อมูลจะถูกอ้างถึงได้โดยแอดเดรส ซึ่งเป็นเลขฐาน 2 แอดเดรสนี้จะร้องขอโดยซีพียูไปยังหน่วยความจำหลัก เพื่ออ่านค่าหน่วยความจำที่แอดเดรสนั้น
ตัวอย่างเช่น หากซีพียูทำงานในระบบ 3 บิต ก็จะอ้างถึงหน่วยความจำได้ 23 = 8 ช่อง หรือ 8 bytes เมื่อติดตั้งหน่วยความจำเกินกว่าซีพียูจะอ้างถึง เช่น 64 byte ลงไป ซีพียูที่ทำงานในระบบ 3 บิต ก็จะมองเห็นได้เท่าที่ตัวเองจะอ้างอิงนั่นคือ 8 byte เท่านั้น อีก 56 byte จึงกลายเป็นพื้นที่ลึกลับและเปล่าประโยชน์ที่ซีพียูไม่สามารถอ้างถึงได้นั่น เอง
ในระบบ 32 บิต การอ้างอิงหน่วยความจำหลักจะทำได้ 232 หรือเท่ากับ 4,294,967,296 byte หรือประมาณ 4GB ไม่เกินจากนี้ แต่น่าเสียดายที่อุปกรณ์ต่างๆ ที่ติดตั้งอยู่ในระบบ ตั้งแต่ ตัวคอนโทรลเลอร์ USB การ์ดแสดงผลหรือการ์ดทีวีจูนเนอร์ต่างก็ต้องอ้างถึงพื้นที่หน่วยความจำใน ระบบด้วยเช่นกัน ทำให้ระบบปฏิบัติการต้องกันพื้นที่ของหน่วยความจำประมาณ 300 – 1024MB สำหรับอุปกรณ์นั้นๆ ไว้ ไม่ว่าจะถูกใช้หรือไม่ก็ตาม
ล้วงลึกหน่วยความจำระบบด้วย Physical Address Extension (PAE)
เมื่อไม่นานมานี้ มีผู้คิดค้นเทคโนโลยี Physical Address Extension (PAE) ที่ช่วยดึงหน่วยความจำหลักของระบบในส่วนที่ถูกกักเก็บไว้กลับมาใช้ได้อีกครั้ง ใครที่ใช้ซีพียูอินเทลตระกูลเพนเทียมหรือเก่ากว่าซึ่งอ้างถึงพื้นที่หน่วยความจำได้ 32 Line จะไม่สามารถใช้ประโยชน์จากเทคโนโลยี PAE ได้ แต่ถ้าคุณใช้ซีพียูตั้งแต่เพนเทียมโปรเรื่อยมาจนถึง Core 2 ที่อ้างถึงหน่วยความจำได้มากกว่า 36 line จะรองรับความจุของหน่วยความจำได้สูงสุดถึง 64GB เลยทีเดียว เทคโนโลยี PAE นี้จะสามารถเปิดใช้งานได้ตั้งแต่วินโดว์สเอ็กซ์พี SP2 ขึ้นไป ส่วนจะทำงานได้สมบูรณ์มากน้อยแค่ไหนก็ขึ้นอยู่กับฮาร์ดแวร์ในเครื่องเป็นสำคัญด้วย
เปิดประตู PAE : Windows XP
ในวินโดว์สเอ็กซ์พีคุณสามารถเปิดใช้งาน PAE ได้ด้วยการแก้ไขไฟล์ “Boot.ini” การเข้าไปยังไฟล์นี้ ทำได้โดย
1. กดคีย์ลัด [Windows] + [E] เพื่อเข้ามาที่หน้า My Computer ดับเบิลคลิกเข้าไปที่ไดร์ฟหลักที่ติดตั้งระบบปฏิบัติการไว้
2. คลิกที่เมนู Tools > Folder Options แล้วเอาเครื่องหมายถูกที่หัวข้อ Hide protected operating system files (Recommended) ออก ติ๊กถูกที่หัวข้อ Show hidden files and folders กด OK ก็จะเห็นไฟล์ Boot.ini โชว์ขึ้นมา
3. คลิกขวาเลือก Properties แล้วเอาเครื่องหมายหน้า Read-only ออก เท่านี้คุณก็แก้ไขไฟล์ Boot.ini ได้แล้ว
4. ให้คุณเพิ่มคำสั่ง /PAE ต่อท้ายบรรทัดที่ระบุตำแหน่งระบบปฏิบัติการ จากนั้นกด Save และรีสตาร์ทเครื่อง ถ้าฮาร์ดแวร์รองรับคำสั่ง PAE เมื่อเข้ามาที่ Control panel > System คุณก็จะเห็นรายละเอียดหน่วยความจำที่มากขึ้นพร้อมๆ กับคำว่า Physical address enhancement
เปิดประตู PAE : Windows Vista / 7 32bit
1. ให้คุณกดปุ่ม [Windows] แล้วพิมพ์ cmd ลงในช่อง Search Field
2. จากนั้นคลิกขวาที่ไฟล์ cmd.exe เลือก Run as administrator พิมพ์คำสั่ง “BCDedit/set PAE forceenble” กด Enter แล้วรีสตาร์ทเครื่อง ประสิทธิภาพของคอมพิวเตอร์จะสูงขึ้น ถ้าอุปกรณ์รองรับคำสั่งดังกล่าว
หมายเหตุ : หากระบบไม่สามารถทำงานได้ ให้เข้าไปที่ Safe mode และลบคำสั่ง /PAE ในไฟล์ Boot.ini (วินโดว์สเอ็กซ์พี) หรือพิมพ์ “BCDedit/set PAE forcedisable” (วินโดว์สวิสต้า/วินโดว์สเซเว่น)
หน่วยความจำที่ระบบมองเห็น เพิ่มขึ้นนั้น จะไม่ได้ถูกนำมาใช้กับระบบโดยตรง แต่จะถูกแปลงให้เป็น RAM-Disk เพื่อใช้ความเร็วของมันให้เป็นประโยชน์ต่อได้ CHIP ขอแนะนำ Gavotte ramdisk สุดยอดโปรแกรมสร้าง RAM-Disk ที่ทำงานได้ดี ใช้งานง่าย และมีให้ดาวน์โหลดจากเว็บไซต์ของเราด้วยเช่นกัน
แทนที่ฮาร์ดดิสก์อืดๆ ด้วย RAM-Disk
การติดตั้ง RAM-Disk ทำได้ง่ายและใช้เวลาไม่นานขั้นตอนแรก ต้องแก้ไขการตั้งค่าของ Registry เก่าก่อน โดยดับเบิลคลิกที่ไฟล์ “ram4g.reg” ในโฟลเดอร์ gavotte เพื่อเปิดระบบ จากนั้นคลิกขวาที่โปรแกรม ramdisk เลือก Run as administrator แล้วกดยืนยันการติดตั้งไดรเวอร์ รอสักครู่เพื่อให้ RAM-Disk เข้าสู่ระบบ ขั้นตอนสุดท้ายคือการเลือกขนาดพื้นที่ RAM-Disk ที่ต้องการแล้วกด OK
คุณสามารถจัดการกับ RAM-Disk และใช้ประโยชน์จากพื้นที่ 500 หรือ 600MB ที่เพิ่มขึ้นมาได้ทันที หลังจากสร้างไดร์ฟแล้ว ระบบจะสร้าง โฟลเดอร์เก็บ Temp File ด้วย ซึ่งจะถูกลบทุกๆ ครั้งที่ชัตดาวน์หรือรีสตาร์ทเครื่อง อย่างไรก็ตาม พื้นที่จะไม่ได้เพิ่มขึ้นอย่างมีนัยสำคัญ ถ้าคุณตระหนักดีว่า PAE และ Gavotte ทำงานได้อย่างถูกต้องในระบบ
คุณสามารถขยายขนาดของ RAM-Disk ได้ด้วยการใส่หน่วยความจำเพิ่มลงไป และปรับเปลี่ยนการตั้งค่าพื้นฐานของเครื่องมือ Gavotte เสียใหม่ RAM-Disk ก็จะขยายขนาดเป็น 4GB ได้เองอัตโนมัติ RAM-Disk ที่ได้สามารถนำไปใช้ประโยชน์ได้หลายแบบ โดยเฉพาะอย่างยิ่ง การเซ็ตให้พื้นที่ของ RAM-Disk ทำงานเป็น Swap File ซึ่งจะช่วยให้ระบบและแอพพลิเคชันทำงานได้เร็วขึ้น
คุณสามารถตั้งค่านี้ในวินโดว์สวิสต้าได้โดยไปที่ Control Panel > System Maintenance> System เลือกหัวข้อ advanced system settings > Performance > Settings ค่ากำหนดของ Swap File จะอยู่ในแท็บ Extended
สำหรับวินโดว์สเอ็กซ์พี การตั้งค่า Swap File ต้องเข้าไปตั้งค่าที่ Control Panel > System > Advanced > คลิก Setting ในหัวข้อ Performance > Advanced > คลิก Change ในหัวข้อ Virtual Memory จากนั้นให้ยกเลิกการตั้งค่า Swap File อันเดิมซึ่งจะเป็นไดร์ฟ C: ออกก่อน แล้วค่อยมาเปิดใช้งานที่ไดร์ฟ R: หรือไดร์ฟที่สร้างไว้
ที่มา : http://www.gggcomputer.com/index.php?topic=9651.0;wap2
กำลังจะหมดไปด้วยเทคนิค PAE และวิธีย้ายตำแหน่งอ้างอิง
เหตุใด? ระบบปฏิบัติการ 32 บิต ถึงมองเห็นหน่วยความจำได้ไม่เต็มความจุ
หน่วยความจำ ประกอบด้วยหน่วยเก็บข้อมูลย่อยๆ แต่ละหน่วยเก็บข้อมูลจะถูกอ้างถึงได้โดยแอดเดรส ซึ่งเป็นเลขฐาน 2 แอดเดรสนี้จะร้องขอโดยซีพียูไปยังหน่วยความจำหลัก เพื่ออ่านค่าหน่วยความจำที่แอดเดรสนั้น
ตัวอย่างเช่น หากซีพียูทำงานในระบบ 3 บิต ก็จะอ้างถึงหน่วยความจำได้ 23 = 8 ช่อง หรือ 8 bytes เมื่อติดตั้งหน่วยความจำเกินกว่าซีพียูจะอ้างถึง เช่น 64 byte ลงไป ซีพียูที่ทำงานในระบบ 3 บิต ก็จะมองเห็นได้เท่าที่ตัวเองจะอ้างอิงนั่นคือ 8 byte เท่านั้น อีก 56 byte จึงกลายเป็นพื้นที่ลึกลับและเปล่าประโยชน์ที่ซีพียูไม่สามารถอ้างถึงได้นั่น เอง
ในระบบ 32 บิต การอ้างอิงหน่วยความจำหลักจะทำได้ 232 หรือเท่ากับ 4,294,967,296 byte หรือประมาณ 4GB ไม่เกินจากนี้ แต่น่าเสียดายที่อุปกรณ์ต่างๆ ที่ติดตั้งอยู่ในระบบ ตั้งแต่ ตัวคอนโทรลเลอร์ USB การ์ดแสดงผลหรือการ์ดทีวีจูนเนอร์ต่างก็ต้องอ้างถึงพื้นที่หน่วยความจำใน ระบบด้วยเช่นกัน ทำให้ระบบปฏิบัติการต้องกันพื้นที่ของหน่วยความจำประมาณ 300 – 1024MB สำหรับอุปกรณ์นั้นๆ ไว้ ไม่ว่าจะถูกใช้หรือไม่ก็ตาม
ล้วงลึกหน่วยความจำระบบด้วย Physical Address Extension (PAE)
เมื่อไม่นานมานี้ มีผู้คิดค้นเทคโนโลยี Physical Address Extension (PAE) ที่ช่วยดึงหน่วยความจำหลักของระบบในส่วนที่ถูกกักเก็บไว้กลับมาใช้ได้อีกครั้ง ใครที่ใช้ซีพียูอินเทลตระกูลเพนเทียมหรือเก่ากว่าซึ่งอ้างถึงพื้นที่หน่วยความจำได้ 32 Line จะไม่สามารถใช้ประโยชน์จากเทคโนโลยี PAE ได้ แต่ถ้าคุณใช้ซีพียูตั้งแต่เพนเทียมโปรเรื่อยมาจนถึง Core 2 ที่อ้างถึงหน่วยความจำได้มากกว่า 36 line จะรองรับความจุของหน่วยความจำได้สูงสุดถึง 64GB เลยทีเดียว เทคโนโลยี PAE นี้จะสามารถเปิดใช้งานได้ตั้งแต่วินโดว์สเอ็กซ์พี SP2 ขึ้นไป ส่วนจะทำงานได้สมบูรณ์มากน้อยแค่ไหนก็ขึ้นอยู่กับฮาร์ดแวร์ในเครื่องเป็นสำคัญด้วย
เปิดประตู PAE : Windows XP
ในวินโดว์สเอ็กซ์พีคุณสามารถเปิดใช้งาน PAE ได้ด้วยการแก้ไขไฟล์ “Boot.ini” การเข้าไปยังไฟล์นี้ ทำได้โดย
1. กดคีย์ลัด [Windows] + [E] เพื่อเข้ามาที่หน้า My Computer ดับเบิลคลิกเข้าไปที่ไดร์ฟหลักที่ติดตั้งระบบปฏิบัติการไว้
2. คลิกที่เมนู Tools > Folder Options แล้วเอาเครื่องหมายถูกที่หัวข้อ Hide protected operating system files (Recommended) ออก ติ๊กถูกที่หัวข้อ Show hidden files and folders กด OK ก็จะเห็นไฟล์ Boot.ini โชว์ขึ้นมา
3. คลิกขวาเลือก Properties แล้วเอาเครื่องหมายหน้า Read-only ออก เท่านี้คุณก็แก้ไขไฟล์ Boot.ini ได้แล้ว
4. ให้คุณเพิ่มคำสั่ง /PAE ต่อท้ายบรรทัดที่ระบุตำแหน่งระบบปฏิบัติการ จากนั้นกด Save และรีสตาร์ทเครื่อง ถ้าฮาร์ดแวร์รองรับคำสั่ง PAE เมื่อเข้ามาที่ Control panel > System คุณก็จะเห็นรายละเอียดหน่วยความจำที่มากขึ้นพร้อมๆ กับคำว่า Physical address enhancement
เปิดประตู PAE : Windows Vista / 7 32bit
1. ให้คุณกดปุ่ม [Windows] แล้วพิมพ์ cmd ลงในช่อง Search Field
2. จากนั้นคลิกขวาที่ไฟล์ cmd.exe เลือก Run as administrator พิมพ์คำสั่ง “BCDedit/set PAE forceenble” กด Enter แล้วรีสตาร์ทเครื่อง ประสิทธิภาพของคอมพิวเตอร์จะสูงขึ้น ถ้าอุปกรณ์รองรับคำสั่งดังกล่าว
หมายเหตุ : หากระบบไม่สามารถทำงานได้ ให้เข้าไปที่ Safe mode และลบคำสั่ง /PAE ในไฟล์ Boot.ini (วินโดว์สเอ็กซ์พี) หรือพิมพ์ “BCDedit/set PAE forcedisable” (วินโดว์สวิสต้า/วินโดว์สเซเว่น)
หน่วยความจำที่ระบบมองเห็น เพิ่มขึ้นนั้น จะไม่ได้ถูกนำมาใช้กับระบบโดยตรง แต่จะถูกแปลงให้เป็น RAM-Disk เพื่อใช้ความเร็วของมันให้เป็นประโยชน์ต่อได้ CHIP ขอแนะนำ Gavotte ramdisk สุดยอดโปรแกรมสร้าง RAM-Disk ที่ทำงานได้ดี ใช้งานง่าย และมีให้ดาวน์โหลดจากเว็บไซต์ของเราด้วยเช่นกัน
แทนที่ฮาร์ดดิสก์อืดๆ ด้วย RAM-Disk
การติดตั้ง RAM-Disk ทำได้ง่ายและใช้เวลาไม่นานขั้นตอนแรก ต้องแก้ไขการตั้งค่าของ Registry เก่าก่อน โดยดับเบิลคลิกที่ไฟล์ “ram4g.reg” ในโฟลเดอร์ gavotte เพื่อเปิดระบบ จากนั้นคลิกขวาที่โปรแกรม ramdisk เลือก Run as administrator แล้วกดยืนยันการติดตั้งไดรเวอร์ รอสักครู่เพื่อให้ RAM-Disk เข้าสู่ระบบ ขั้นตอนสุดท้ายคือการเลือกขนาดพื้นที่ RAM-Disk ที่ต้องการแล้วกด OK
คุณสามารถจัดการกับ RAM-Disk และใช้ประโยชน์จากพื้นที่ 500 หรือ 600MB ที่เพิ่มขึ้นมาได้ทันที หลังจากสร้างไดร์ฟแล้ว ระบบจะสร้าง โฟลเดอร์เก็บ Temp File ด้วย ซึ่งจะถูกลบทุกๆ ครั้งที่ชัตดาวน์หรือรีสตาร์ทเครื่อง อย่างไรก็ตาม พื้นที่จะไม่ได้เพิ่มขึ้นอย่างมีนัยสำคัญ ถ้าคุณตระหนักดีว่า PAE และ Gavotte ทำงานได้อย่างถูกต้องในระบบ
คุณสามารถขยายขนาดของ RAM-Disk ได้ด้วยการใส่หน่วยความจำเพิ่มลงไป และปรับเปลี่ยนการตั้งค่าพื้นฐานของเครื่องมือ Gavotte เสียใหม่ RAM-Disk ก็จะขยายขนาดเป็น 4GB ได้เองอัตโนมัติ RAM-Disk ที่ได้สามารถนำไปใช้ประโยชน์ได้หลายแบบ โดยเฉพาะอย่างยิ่ง การเซ็ตให้พื้นที่ของ RAM-Disk ทำงานเป็น Swap File ซึ่งจะช่วยให้ระบบและแอพพลิเคชันทำงานได้เร็วขึ้น
คุณสามารถตั้งค่านี้ในวินโดว์สวิสต้าได้โดยไปที่ Control Panel > System Maintenance> System เลือกหัวข้อ advanced system settings > Performance > Settings ค่ากำหนดของ Swap File จะอยู่ในแท็บ Extended
สำหรับวินโดว์สเอ็กซ์พี การตั้งค่า Swap File ต้องเข้าไปตั้งค่าที่ Control Panel > System > Advanced > คลิก Setting ในหัวข้อ Performance > Advanced > คลิก Change ในหัวข้อ Virtual Memory จากนั้นให้ยกเลิกการตั้งค่า Swap File อันเดิมซึ่งจะเป็นไดร์ฟ C: ออกก่อน แล้วค่อยมาเปิดใช้งานที่ไดร์ฟ R: หรือไดร์ฟที่สร้างไว้
ที่มา : http://www.gggcomputer.com/index.php?topic=9651.0;wap2
วันอาทิตย์ที่ 11 กันยายน พ.ศ. 2554
เครื่องของคุณห่วย หรือเทพ ตัดสินโดย Windows 7
บางท่านอาจจะยังไม่เคยเข้าไปดูการวัด Rate ของ Windows 7
ตัววัด Rate นี้จะวัด Hardware เช่น Processor , Ram , HDD และ Graphic เป็นสำคัญ ซึ่งจะจัด Rate ไว้ตั้งแต่
1.0 ถึง 7.9 แน่นอนว่า 1.0 คงจะเป็นเครื่องที่พอใช้ได้เท่านั้น Rate ยิ่งสูงก็ยิ่งแสดงว่าเครื่องเจ๋งขนาดไหน
Rate นี้จะทำการวัดเมื่อท่านติดตั้ง Windows 7 และใช้งานไปสักระยะหนึ่ง ระบบก็จะเริ่มเก็บข้อมูลการทำงานและจัด Rate
การเข้าไปดู Rate นั้นก็ไม่ยาก
จากรายละเอียดของการวัด Rating ของ Microsoft เครื่องที่มีค่าเฉลี่ย 2.0 ขึ้นไปถือว่าเพียงพอ เป็นเครื่องที่เหมาะกับการใช้งานทั่วไป เช่นพิมพ์งาน หรืออินเตอร์เน็ต หากมีค่าเฉลี่ย 3.0 ขึ้นไป ถือว่าเครื่องนั้นอยู่ในระดับค่อนข้างดี ใช้ทำงานเกี่ยวกับ Graphic หรือเล่นเกมได้
ตัววัด Rate นี้จะวัด Hardware เช่น Processor , Ram , HDD และ Graphic เป็นสำคัญ ซึ่งจะจัด Rate ไว้ตั้งแต่
1.0 ถึง 7.9 แน่นอนว่า 1.0 คงจะเป็นเครื่องที่พอใช้ได้เท่านั้น Rate ยิ่งสูงก็ยิ่งแสดงว่าเครื่องเจ๋งขนาดไหน
Rate นี้จะทำการวัดเมื่อท่านติดตั้ง Windows 7 และใช้งานไปสักระยะหนึ่ง ระบบก็จะเริ่มเก็บข้อมูลการทำงานและจัด Rate
การเข้าไปดู Rate นั้นก็ไม่ยาก
คลิ๊กเมาส์ปุ่มขวาที่ My Computer แล้วเลือก Properties |
พบหน้าต่างรายละเอียดเกี่ยวกับระบบ ดูที่หัวข้อ Rating กดที่ Windows Experience Index |
จะเปิดหน้าต่างรายละเอียดในการวัด Rating (Rate and improve your computer's performance) ในภาพด้านบนเครื่องของผู้เขียนวัดได้คะแนนเฉลี่ย 5.4 |
สมัครสมาชิก:
บทความ (Atom)