08-03-2006, 03:53
|
|
|
חבר מתאריך: 11.09.04
הודעות: 1,032
|
|
עדכון הבדיקה...
בעקבות ההערה של yytg החלטתי לשפר ולהרחיב מעט את הסקריפט (ועל כך, רוב תודות לו ).
הבדיקה המעודכנת מחולקת לשתיים:- reference ל-10 אלמנטים (שוב ושוב) באיטרציה של 1,000
- reference ל-5000 אלמנטים (פעם אחת) באיטרציה של 5,000
לעניות דעתי הבדיקה הזו יותר נכונה מהקודמת, בעיקר עקב העובדה שרוב הפעמים נפנה ליותר מ-id אחד.
ומצד שני, מה התוצאה כאשר אנו לא מתבססים על אובייקטים שנלקח ה-reference אליהם (שימוש חד פעמי).
התוצאות ב-Internet Explorer:
קוד:
Caching 10 elements (repeatedly):
* 55609ms. [document.getElementById(sId)]
* 50562ms. [d.getElementById(sId)]
* 50922ms. [$(sId)]
* 78ms. [Hash(sId)]
Caching 5,000 elements (once):
* 26187ms. [document.getElementById(sId)]
* 26485ms. [d.getElementById(sId)]
* 26218ms. [$(sId)]
* 26391ms. [Hash(sId)]
התוצאות ב-Firefox:
קוד:
Caching 10 elements (repeatedly):
* 141ms. [document.getElementById(sId)]
* 156ms. [d.getElementById(sId)]
* 156ms. [$(sId)]
* 63ms. [Hash(sId)]
Caching 5,000 elements (once):
* 18906ms. [document.getElementById(sId)]
* 3563ms. [d.getElementById(sId)]
* 218ms. [$(sId)]
* 172ms. [Hash(sId)]
אני חייב לציין שהתוצאות שחזרו מ-IE הזויות למדי וייתכן שלא נכונות וקשורות לבעיה שטרם עליתי עליה...
מצד שני, ייתכן וזה קשור בדרך בה IE מייצר את הדף מה שגורם למנוע ה-JS שלו להגיע למצב over-load. דבר זה לא קרה ב-FF וחוץ מכמה שניות המתנה (ומספר פעמים שנאלצתי לאשר לו את המשך ביצוע הסקריפט [הוא התעקש שהביצוע לוקח יותר מדי זמן]) הכל התבצע חלק. אם למישהו יש רעיון למה זה קרה, אשמח לשמוע.
אשמח לשמוע הערות נוספות אם יש כדי לשפר את הבדיקה אף יותר
https://2006-uploaded.fresh.co.il/2...08/96722225.htm
מומלץ לטעון את הדף דרך IE רק לפני ארוחת צהריים/מקלחת/הכנת קפה, תה, שוקו וכו'
_____________________________________
נערך לאחרונה ע"י Silver Strike בתאריך 08-03-2006 בשעה 03:55.
|