אתגר קטן

Edo Reshef

New member
אתגר קטן

הי חברה, אני מעונים לבדוק ביצועים מול זמן פיתוח במספר סביבות הפיתוח, לצורך כך חשבתי שנשתף פעולה מספר אנשים וניצור איזה שהו אלגוריים פשוט אשר ייושם בצורה זהה בכל הסביבות, נמדוד ביצועים וניבנה סטיסטיקות. כמובן שבדיקות הביצועים של כל התוכנות חייבת להתבצע על אותו מחשב לכן אני מציע שמישהו ירכז את הנושא. השפות שאני מעוניין לבדוק הם: C++, VB, Java, Delphi, .NET אני אישית יודע בעיקר Delphi לכן אני צריך מתנדבים לשפות האחרות. אני מעונין לבדוק: פעולות מתמטיות, לולאות, גישות זיכרון, הקצאות זיכרון, פעולות Strings ואופטימיזציות, כמו כן מעניין אותי גם זמן הפיתוח. עם יש לכם עוד רעיונות או רעיונות לאלגוריתמים אתם מוזמנים....
 

Edo Reshef

New member
אני לא רואה בעיה

אלגוריתם פשוט, כמה שורת קוד לא משהו גדול... רק לצורכי בדיקה. אין ספק שזה לא יכול היות דומה ב-100% אבל האלגוריתמים יכולים לעשות את אותו הדבר וזה מה שמעניין (אותי לפחות).
 

scalla

New member
העיניין שאי אפשר למדוד

כמה SYSTEMCALL היו ויש גם בעיה שכל תוכנה, שפה ומערכת הפעלה מתפקדות ממש שונה בגלל כמות RAM וסוג מעבד. לדוגמא יש שפות (יותר נכון לפעם) שהקומפיילר עושה אימולציה ל FLOAT POINT שמ486 היה מובנה כבר במעבד ולא היה צורך יותר באימולציה. גם אם אני לא טועה בתקופת WIN2000 לינוקס זללה הרבה יותר RAM מWINDOWS.
 

Edo Reshef

New member
אני מעוניין בביצועים כוללים

אני מעוניין בביצועים כוללים, ועם שפה מחליטה לא להשתמש במעבד המתמטי או עושה הרבה SYSTEMCALL או זוללת זיכרון (שזה גם מדד מצוין) אני רוצה שזה ישתקף בתוצאות. בקיצור, לא בא לך לכיתוב 50 שורות קוד את לא חייב.
 

scalla

New member
ה SYSTEMCALL לא חייבים להיות

מהתוכנה, הם גם יכולים להיות ממערכת ההפעלה, הם יכולים להיות מPROCESSES וממך.
 

Edo Reshef

New member
נכון אבל

אפשר לשמור על תנאי עובדות זהים לכל התוכנות, ועם דוגמים לזמן מספיק ארוך מקבלים נתוני ביצועיים עקביים. בכל מקרה אפשר להעלות את ה - Priority של Process ואז את רץ כמעת על 100% CPU, אבל אני לא מעוניין לעשות את זה. Scalla, יש מצב שאתה עושה את גרסת ה ++VC?
 

scalla

New member
יש לי גם בעיה

אני לא מתכנת בdelphi כך שאני מבין את הרוב(מיידע קודם בpascal) וגם לא שמתה מקום להכרזה על משתנים כך שזה לא ידוע לי איזה טיפוס אני צריך להשתמש. עוד דבר איך מיישרים לשמאל?
 

Edo Reshef

New member
PseudoCode לדוגמה

הקטע PseudoCode (דומה ל-Pascal קצת) הבא הוא מה משמעניין אותי לבדוק, מוזמנים להוסיף...
// // Test1 - Fill Matrix // StartTime = GetTickCount Test1Count = 0; repeat for i = 0 to 255 do for j = 0 to 255 do Matrix[i,j] = i xor j Test1Count = Test1Count + 1; until GetTickCount - StartTime > 5000 //do that for 5 sec // // Test2 - Find Histograma // StartTime = GetTickCount Test2Count = 0; repeat for i = 0 to 255 do for j = 0 to 255 do Histo[Matrix[i,j]] = Histo[Matrix[i,j]]+1 Test2Count = Test2Count + 1; until GetTickCount - StartTime > 5000 //do that for 5 sec // // Test3 - Math // StartTime = GetTickCount Test3Count = 0; repeat for j = 0 to 255 do Histo = Histo div 2 + (Histo+5)*2 Test3Count = Test3Count + 1; until GetTickCount - StartTime > 5000 //do that for 5 sec Display Histo // // Test4 - Strings // StartTime = GetTickCount Test4Count = 0; repeat A = "Hello World" for i = 0 to 5 do A = A + A A = A + "Find me!" for i = 0 to 5 do FindSubString("Find me!", A) Test4Count = Test4Count + 1; until GetTickCount - StartTime > 5000 //do that for 5 sec Display A // // Test5 - Optimizations 1 // StartTime = GetTickCount Test5Count = 0; repeat Q = 10.2 V = 22.3 P = Q/V P = Q/V P = Q/V P = Q/V P = Q/V Test5Count = Test4Count + 1; until GetTickCount - StartTime > 5000 //do that for 5 sec Display P // // Test6 - Optimizations 2 // StartTime = GetTickCount Test6Count = 0; repeat Q = 10.2 V = 22.3 T = Q/V P = T P = T P = T P = T P = T Test6Count = Test4Count + 1; until GetTickCount - StartTime > 5000 //do that for 5 sec Display P // // Show results // Display "Test1 per Sec" 5/Test1Count Display "Test2 per Sec" 5/Test2Count Display "Test3 per Sec" 5/Test3Count Display "Test4 per Sec" 5/Test4Count Display "Test5 per Sec" 5/Test5Count Display "Test6 per Sec" 5/Test6Count
 
למעלה