<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>
	ความเห็นบน: Loop	</title>
	<atom:link href="https://www.parinya.net/node/475/feed" rel="self" type="application/rss+xml" />
	<link>https://www.parinya.net/node/475</link>
	<description>ทฤษฎีการคำนวณสำหรับคอมพิวเตอร์และทฤษฎีการประมวลผลสารสนเทศ</description>
	<lastBuildDate>Wed, 25 Apr 2007 11:08:52 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.2</generator>
	<item>
		<title>
		โดย: Tee		</title>
		<link>https://www.parinya.net/node/475/comment-page-1#comment-1916</link>

		<dc:creator><![CDATA[Tee]]></dc:creator>
		<pubDate>Wed, 25 Apr 2007 11:08:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.peetai.com/archives/475#comment-1916</guid>

					<description><![CDATA[เห็นข้างบนแล้ว นึกถึง yes &#062; /dev/null ที่ทำ Macbook บางเครื่อง random shutdown ได้]]></description>
			<content:encoded><![CDATA[<p>เห็นข้างบนแล้ว นึกถึง yes &gt; /dev/null ที่ทำ Macbook บางเครื่อง random shutdown ได้</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		โดย: พี่ไท้		</title>
		<link>https://www.parinya.net/node/475/comment-page-1#comment-1914</link>

		<dc:creator><![CDATA[พี่ไท้]]></dc:creator>
		<pubDate>Wed, 25 Apr 2007 05:35:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.peetai.com/archives/475#comment-1914</guid>

					<description><![CDATA[^o^ ผมหมายถึงการวน Loop ธรรมดาน่ะครับคุณ Tee เช่น
&lt;blockquote&gt;for (i_count = 0; i_count &lt; 100000000; ++i_count)
printf(&quot;%d
&quot;, i_count);&lt;/blockquote&gt;
แค่นี้ก็ทำให้ CPU ขึ้นถึง 100% แล้วครับ

ที่ไม่อยากให้ CPU มันถึง 100% ก็เพราะว่าถ้าโปรแกรมมันไปทำงานใน NoteBook ยี่ห้อไม่แพงมากอย่าง Acer มันจะทำให้ CPU ร้อนมาก ๆ เลยครับคุณวีเวลาที่มันใช้พลัง CPU ถึง 100%]]></description>
			<content:encoded><![CDATA[<p>^o^ ผมหมายถึงการวน Loop ธรรมดาน่ะครับคุณ Tee เช่น</p>
<blockquote><p>for (i_count = 0; i_count < 100000000; ++i_count)
printf("%d
", i_count);</p></blockquote>
<p>แค่นี้ก็ทำให้ CPU ขึ้นถึง 100% แล้วครับ</p>
<p>ที่ไม่อยากให้ CPU มันถึง 100% ก็เพราะว่าถ้าโปรแกรมมันไปทำงานใน NoteBook ยี่ห้อไม่แพงมากอย่าง Acer มันจะทำให้ CPU ร้อนมาก ๆ เลยครับคุณวีเวลาที่มันใช้พลัง CPU ถึง 100%</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		โดย: Tee		</title>
		<link>https://www.parinya.net/node/475/comment-page-1#comment-1913</link>

		<dc:creator><![CDATA[Tee]]></dc:creator>
		<pubDate>Wed, 25 Apr 2007 02:25:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.peetai.com/archives/475#comment-1913</guid>

					<description><![CDATA[ใช้ CPU ขึ้น100%แปลได้หลายอย่างครับ
1) คนเขียน loop ห่วยทำงานเกินที่มันควรจะทำ
2) คนเขียน loop เก่งมาก optimize โดยความเร็วไม่คอขวดที่การไปหาของใน memory ใช้ register cache หมด

แต่ว่า ถ้าพี่ไท้หมายถึง การเขียน web-server ที่มันต้องวน loop แต่ loop ที่วนส่วนใหญ่ไม่ได้ทำอะไร

มันมีคำสั่ง sleep wait_pid select (แล้วแต่ว่าใช้ fork process หรือ threading) อะไรแถว ๆ นี้อ่ะครับ ที่ให้มันหลับจนกว่าจะมี signal หรือ ข้อมูลเข้ามาได้]]></description>
			<content:encoded><![CDATA[<p>ใช้ CPU ขึ้น100%แปลได้หลายอย่างครับ<br />
1) คนเขียน loop ห่วยทำงานเกินที่มันควรจะทำ<br />
2) คนเขียน loop เก่งมาก optimize โดยความเร็วไม่คอขวดที่การไปหาของใน memory ใช้ register cache หมด</p>
<p>แต่ว่า ถ้าพี่ไท้หมายถึง การเขียน web-server ที่มันต้องวน loop แต่ loop ที่วนส่วนใหญ่ไม่ได้ทำอะไร</p>
<p>มันมีคำสั่ง sleep wait_pid select (แล้วแต่ว่าใช้ fork process หรือ threading) อะไรแถว ๆ นี้อ่ะครับ ที่ให้มันหลับจนกว่าจะมี signal หรือ ข้อมูลเข้ามาได้</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		โดย: วี		</title>
		<link>https://www.parinya.net/node/475/comment-page-1#comment-1912</link>

		<dc:creator><![CDATA[วี]]></dc:creator>
		<pubDate>Tue, 24 Apr 2007 15:25:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.peetai.com/archives/475#comment-1912</guid>

					<description><![CDATA[การ yield ถือว่าเป็นกลไกหนึ่งในระบบ cooperative multitasking ที่ให้สิทธิ์แบ่งเวลาให้โปรเซสอื่น ผมคิดว่าดีแล้วนะ และการที่ cpu ทำงานเต็มที่ ก็ถือว่าเป็นการใช้ทรัพยากรอย่างคุ้มค่า อย่างน้อยก็คือโปรเซสที่ yield ก็ให้สิทธิ์ตัวอื่นทำงานบ้าง โดยหวังว่าถ้าไม่มีใครคนอื่นทำ ตัวเองจะได้ทำต่อให้งานเสร็จไวๆ

ถ้าต้องการให้ cpu ทำงานไม่ถึง 100% จริงๆ นอกจากจะ yield แล้ว ก็สามารถหลับได้ครับ แต่ประเด็นอยู่ที่ถ้าตอนเรียก sleep() แล้วตอนนั้นไม่มีโปรเซสอื่นที่ต้องทำงานนานๆ ก็จะเป็นการเสีย cpu cycle ไปเสียเปล่าๆ

ส่วนอีกวิธีที่คิดได้ตอนนี้ ก็คือการลด priority ของโปรเซสนี้ อาจลดโดยการเซตในโปรแกรมเอง หรือเราสั่งลด task priority ด้วยมือ ก็ได้

แต่ผมสงสัยว่าทำไมถึงอยากให้ cpu ไม่ถึง 100% หรือครับ เพราะทำให้ GUI ไม่ responsive หรือเปล่า ถ้าใช่และจำเป็นต้องรันโปรเซสนั้นๆเป็นเวลานานๆ การลด priority น่าจะเป็นโยบายที่ดีของระบบ preemptive multitasking นะครับ]]></description>
			<content:encoded><![CDATA[<p>การ yield ถือว่าเป็นกลไกหนึ่งในระบบ cooperative multitasking ที่ให้สิทธิ์แบ่งเวลาให้โปรเซสอื่น ผมคิดว่าดีแล้วนะ และการที่ cpu ทำงานเต็มที่ ก็ถือว่าเป็นการใช้ทรัพยากรอย่างคุ้มค่า อย่างน้อยก็คือโปรเซสที่ yield ก็ให้สิทธิ์ตัวอื่นทำงานบ้าง โดยหวังว่าถ้าไม่มีใครคนอื่นทำ ตัวเองจะได้ทำต่อให้งานเสร็จไวๆ</p>
<p>ถ้าต้องการให้ cpu ทำงานไม่ถึง 100% จริงๆ นอกจากจะ yield แล้ว ก็สามารถหลับได้ครับ แต่ประเด็นอยู่ที่ถ้าตอนเรียก sleep() แล้วตอนนั้นไม่มีโปรเซสอื่นที่ต้องทำงานนานๆ ก็จะเป็นการเสีย cpu cycle ไปเสียเปล่าๆ</p>
<p>ส่วนอีกวิธีที่คิดได้ตอนนี้ ก็คือการลด priority ของโปรเซสนี้ อาจลดโดยการเซตในโปรแกรมเอง หรือเราสั่งลด task priority ด้วยมือ ก็ได้</p>
<p>แต่ผมสงสัยว่าทำไมถึงอยากให้ cpu ไม่ถึง 100% หรือครับ เพราะทำให้ GUI ไม่ responsive หรือเปล่า ถ้าใช่และจำเป็นต้องรันโปรเซสนั้นๆเป็นเวลานานๆ การลด priority น่าจะเป็นโยบายที่ดีของระบบ preemptive multitasking นะครับ</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
