<?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>Comments on: C יותר מהירה מJava</title>
	<atom:link href="http://firefang.net/blog/923/feed" rel="self" type="application/rss+xml" />
	<link>http://firefang.net/blog/923</link>
	<description>May your sockets never timeout</description>
	<pubDate>Tue, 02 Dec 2008 08:18:39 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7-RC1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: סשה</title>
		<link>http://firefang.net/blog/923/comment-page-1#comment-7159</link>
		<dc:creator>סשה</dc:creator>
		<pubDate>Tue, 08 Jul 2008 05:07:05 +0000</pubDate>
		<guid isPermaLink="false">http://firefang.net/blog/923#comment-7159</guid>
		<description>לדעתי פשוט התכנית הנתונה היא לא דוגמא טובה. מרשים שה-JIT לא פחות טוב מקומפיילר רגיל עבור תכניות קטנות, אבל עבור קוד כזה (פעולות בסיסיות על זכרון) אני מנחש שפשוט ה-JIT מייצר קוד מאוד דומה (אולי אפילו זהה) לקוד שמייצר קומפיילר C.

הרבה יותר מעניין, לדעתי, לחשוב על בעיה מסויימת, לא מסובכת מדי ולא פשוטה מדי, לכתוב עבורה פתרון ב"אידיאולוגיה" של כל שפה ולבדוק מה רץ מהר יותר.</description>
		<content:encoded><![CDATA[<p>לדעתי פשוט התכנית הנתונה היא לא דוגמא טובה. מרשים שה-JIT לא פחות טוב מקומפיילר רגיל עבור תכניות קטנות, אבל עבור קוד כזה (פעולות בסיסיות על זכרון) אני מנחש שפשוט ה-JIT מייצר קוד מאוד דומה (אולי אפילו זהה) לקוד שמייצר קומפיילר C.</p>
<p>הרבה יותר מעניין, לדעתי, לחשוב על בעיה מסויימת, לא מסובכת מדי ולא פשוטה מדי, לכתוב עבורה פתרון ב&#8221;אידיאולוגיה&#8221; של כל שפה ולבדוק מה רץ מהר יותר.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: עמרי</title>
		<link>http://firefang.net/blog/923/comment-page-1#comment-7156</link>
		<dc:creator>עמרי</dc:creator>
		<pubDate>Sun, 06 Jul 2008 13:29:43 +0000</pubDate>
		<guid isPermaLink="false">http://firefang.net/blog/923#comment-7156</guid>
		<description>גרשון, נכון. ולכן המכונה עם שתי הליבות המהירות נתנה ביצועים יותר טובים מהמכונה עם ארבע הליבות האיטיות.
מה אתה רוצה להגיד?</description>
		<content:encoded><![CDATA[<p>גרשון, נכון. ולכן המכונה עם שתי הליבות המהירות נתנה ביצועים יותר טובים מהמכונה עם ארבע הליבות האיטיות.<br />
מה אתה רוצה להגיד?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: גרשון בבולה</title>
		<link>http://firefang.net/blog/923/comment-page-1#comment-7155</link>
		<dc:creator>גרשון בבולה</dc:creator>
		<pubDate>Sun, 06 Jul 2008 11:42:20 +0000</pubDate>
		<guid isPermaLink="false">http://firefang.net/blog/923#comment-7155</guid>
		<description>שתי ליבות, ארבע ליבות, שבע עשרה ליבות - הקוד שלך רץ עם פתיל אחד!

מעניין לנסות על JVM-ים אחרים, שלחלקם מוניטין יותר טובים משל Hotspot.</description>
		<content:encoded><![CDATA[<p>שתי ליבות, ארבע ליבות, שבע עשרה ליבות - הקוד שלך רץ עם פתיל אחד!</p>
<p>מעניין לנסות על JVM-ים אחרים, שלחלקם מוניטין יותר טובים משל Hotspot.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: עמרי</title>
		<link>http://firefang.net/blog/923/comment-page-1#comment-7118</link>
		<dc:creator>עמרי</dc:creator>
		<pubDate>Thu, 26 Jun 2008 21:14:42 +0000</pubDate>
		<guid isPermaLink="false">http://firefang.net/blog/923#comment-7118</guid>
		<description>מרק,
האמת היא שבפעם הראשונה שהרצתי את הבדיקה הזו, קיבלתי את התוצאה הזו (ביצועים דומים, עם יתרון קטן לC).
כששיחזרתי את הבדיקה בשביל הפוסט קיבלתי את התוצאה המוזרה שציטטתי בהתחלה, ולא ידעתי להסביר אותה עד שלא ירדתי לעומק העניין: קימפול עם אופטימיזציה לC וקימפול עם jikes לג'אווה (בהתחלה קימפלתי הכל בeclipse, אז הסביבה דאגה לדברים האלו בלי שאני אדע).

לגבי שיטת המדידה, התוצאות דומות מספיק, אתה מוזמן לשחזר אצלך :).</description>
		<content:encoded><![CDATA[<p>מרק,<br />
האמת היא שבפעם הראשונה שהרצתי את הבדיקה הזו, קיבלתי את התוצאה הזו (ביצועים דומים, עם יתרון קטן לC).<br />
כששיחזרתי את הבדיקה בשביל הפוסט קיבלתי את התוצאה המוזרה שציטטתי בהתחלה, ולא ידעתי להסביר אותה עד שלא ירדתי לעומק העניין: קימפול עם אופטימיזציה לC וקימפול עם jikes לג&#8217;אווה (בהתחלה קימפלתי הכל בeclipse, אז הסביבה דאגה לדברים האלו בלי שאני אדע).</p>
<p>לגבי שיטת המדידה, התוצאות דומות מספיק, אתה מוזמן לשחזר אצלך :).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: מרק ק.</title>
		<link>http://firefang.net/blog/923/comment-page-1#comment-7117</link>
		<dc:creator>מרק ק.</dc:creator>
		<pubDate>Thu, 26 Jun 2008 11:47:08 +0000</pubDate>
		<guid isPermaLink="false">http://firefang.net/blog/923#comment-7117</guid>
		<description>אני שמח לראות שהאינטואיציה שלי מוצדקת ומאוד מקווה שלא תביא עוד נתונים שיפריכו אותה :)
בכל מקרה יש לי ניטפוק קטן: שיטת המדידה האחרונה שונה מהשיטה בה השתמשת כשמדדת את הC</description>
		<content:encoded><![CDATA[<p>אני שמח לראות שהאינטואיציה שלי מוצדקת ומאוד מקווה שלא תביא עוד נתונים שיפריכו אותה <img src='http://firefang.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
בכל מקרה יש לי ניטפוק קטן: שיטת המדידה האחרונה שונה מהשיטה בה השתמשת כשמדדת את הC</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: עמרי</title>
		<link>http://firefang.net/blog/923/comment-page-1#comment-7116</link>
		<dc:creator>עמרי</dc:creator>
		<pubDate>Thu, 26 Jun 2008 10:03:30 +0000</pubDate>
		<guid isPermaLink="false">http://firefang.net/blog/923#comment-7116</guid>
		<description>מרק, ראה עדכון נוסף בפוסט.</description>
		<content:encoded><![CDATA[<p>מרק, ראה עדכון נוסף בפוסט.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: מרק ק.</title>
		<link>http://firefang.net/blog/923/comment-page-1#comment-7115</link>
		<dc:creator>מרק ק.</dc:creator>
		<pubDate>Thu, 26 Jun 2008 08:41:55 +0000</pubDate>
		<guid isPermaLink="false">http://firefang.net/blog/923#comment-7115</guid>
		<description>1. לכל כלל יש יוצא מהכלל, אבל נדמה לי שברוב הארכיטקטורות ניתן להגדיל את הסטאק. במקרה הזה האלוקציה הגדולה סביר להניח שמבטל את היתרון של C בכך שהיא משווה את האלוקציה ההתחלית הגדולה של JAVA שגורמת לכך שnew בJAVA או פעולה הרבההההה יותר מהירה מבC.
2. זו אופטימיזציה שסביר להניח שלא תקבל אם לא תקמפל במפורש עבור אופטימיזציה. תזכור שבגלל שאין מערכת הפעלה וירטואלית בC, אופטימיזציה של קוד, גם מהסוג שמכניס משתנים לרגיסטרים הופכת את הדיבוג למאוד קשה.
4. אני מצפה מתוכנית כזו שהתוצאות בC ובJAVA יהיו דומות עם הפרש קטן לטובת C.</description>
		<content:encoded><![CDATA[<p>1. לכל כלל יש יוצא מהכלל, אבל נדמה לי שברוב הארכיטקטורות ניתן להגדיל את הסטאק. במקרה הזה האלוקציה הגדולה סביר להניח שמבטל את היתרון של C בכך שהיא משווה את האלוקציה ההתחלית הגדולה של JAVA שגורמת לכך שnew בJAVA או פעולה הרבההההה יותר מהירה מבC.<br />
2. זו אופטימיזציה שסביר להניח שלא תקבל אם לא תקמפל במפורש עבור אופטימיזציה. תזכור שבגלל שאין מערכת הפעלה וירטואלית בC, אופטימיזציה של קוד, גם מהסוג שמכניס משתנים לרגיסטרים הופכת את הדיבוג למאוד קשה.<br />
4. אני מצפה מתוכנית כזו שהתוצאות בC ובJAVA יהיו דומות עם הפרש קטן לטובת C.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: עמרי</title>
		<link>http://firefang.net/blog/923/comment-page-1#comment-7114</link>
		<dc:creator>עמרי</dc:creator>
		<pubDate>Thu, 26 Jun 2008 08:29:21 +0000</pubDate>
		<guid isPermaLink="false">http://firefang.net/blog/923#comment-7114</guid>
		<description>מרק, ראה עדכון בפוסט.</description>
		<content:encoded><![CDATA[<p>מרק, ראה עדכון בפוסט.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: עמרי</title>
		<link>http://firefang.net/blog/923/comment-page-1#comment-7113</link>
		<dc:creator>עמרי</dc:creator>
		<pubDate>Thu, 26 Jun 2008 08:17:01 +0000</pubDate>
		<guid isPermaLink="false">http://firefang.net/blog/923#comment-7113</guid>
		<description>מרק,
1. יש סיבה. התוכנית קורסת אם אתה מכניס דברים גדולים מדי על המחסנית.
2. אם הקומפיילר דביל ולא עושה את זה לבד, זו בעיה די קשה. אתה מוזמן לנסות לשפר.
3. נקודה טובה, אני אנסה עם אופטימיזציה.
4. לא נכון. התוכנית אומנם פשוטה, אבל זמן הריצה שלה ארוך מספיק כדי שזמן הטעינה הראשוני יהיה לא רלוונטי.</description>
		<content:encoded><![CDATA[<p>מרק,<br />
1. יש סיבה. התוכנית קורסת אם אתה מכניס דברים גדולים מדי על המחסנית.<br />
2. אם הקומפיילר דביל ולא עושה את זה לבד, זו בעיה די קשה. אתה מוזמן לנסות לשפר.<br />
3. נקודה טובה, אני אנסה עם אופטימיזציה.<br />
4. לא נכון. התוכנית אומנם פשוטה, אבל זמן הריצה שלה ארוך מספיק כדי שזמן הטעינה הראשוני יהיה לא רלוונטי.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: מרק ק.</title>
		<link>http://firefang.net/blog/923/comment-page-1#comment-7112</link>
		<dc:creator>מרק ק.</dc:creator>
		<pubDate>Thu, 26 Jun 2008 08:06:17 +0000</pubDate>
		<guid isPermaLink="false">http://firefang.net/blog/923#comment-7112</guid>
		<description>אה, אולי יש מקרים שזה נכון שjava יותר מהירה, אבל זה לא המקרה.

ראשית כתבת קוד C כאילו שזה JAVA, שזו כמובן הדרך הלא נכונה... 
1. אין שום סיבה לעשות אלוקציה מהזיכרון בשביל מערך מקומי בפונקציה, אלוקציה כזו עושים על הסטאק. 
2. משתני INT שנעשה בהם שימוש כלכך מסיבי צריך לבקש שישבו ברגיסטר
3. לא קימפלת עם אופטימיזציה. אני לא זוכר אם האופציות הבסיסיות של GCC מקמפלות עם אינפורמצית דיבוג או לא, אבל אחרי שנגמר שלב הדיבוג, תוכנות C מקמפלים עם אופטימיצזיה.

והכי חשוב.... אני מניח שרוב הזמן מבוזבז על כפל של פלוטים, ולכן המסקנה ההגיונית היא שספרית הפלוט של java יותר יעילה מזו של GCC. אם תשתמש בספרית פלוט יותר טובה סביר להניח שתקבל תוצאות שונות לגמרי. אם מענין אותך לנסות, תחליף את הכפל לכפל של INTS ותחזור על הניסוי.

באופן עקרוני התוכנית הזו קטנה מדי ופשוטה מדי בשביל שכל מרכיבי האופטימיזציה הפנימיים של JAVA יתגברו על החיסרון הגדול של זמן הטעינה האיטי ההתחלתי.</description>
		<content:encoded><![CDATA[<p>אה, אולי יש מקרים שזה נכון שjava יותר מהירה, אבל זה לא המקרה.</p>
<p>ראשית כתבת קוד C כאילו שזה JAVA, שזו כמובן הדרך הלא נכונה&#8230;<br />
1. אין שום סיבה לעשות אלוקציה מהזיכרון בשביל מערך מקומי בפונקציה, אלוקציה כזו עושים על הסטאק.<br />
2. משתני INT שנעשה בהם שימוש כלכך מסיבי צריך לבקש שישבו ברגיסטר<br />
3. לא קימפלת עם אופטימיזציה. אני לא זוכר אם האופציות הבסיסיות של GCC מקמפלות עם אינפורמצית דיבוג או לא, אבל אחרי שנגמר שלב הדיבוג, תוכנות C מקמפלים עם אופטימיצזיה.</p>
<p>והכי חשוב&#8230;. אני מניח שרוב הזמן מבוזבז על כפל של פלוטים, ולכן המסקנה ההגיונית היא שספרית הפלוט של java יותר יעילה מזו של GCC. אם תשתמש בספרית פלוט יותר טובה סביר להניח שתקבל תוצאות שונות לגמרי. אם מענין אותך לנסות, תחליף את הכפל לכפל של INTS ותחזור על הניסוי.</p>
<p>באופן עקרוני התוכנית הזו קטנה מדי ופשוטה מדי בשביל שכל מרכיבי האופטימיזציה הפנימיים של JAVA יתגברו על החיסרון הגדול של זמן הטעינה האיטי ההתחלתי.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
