הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   מאמר חדש: השוואה בין סוגי הכנסה למערך (https://hosts.co.il/forums/showthread.php?t=85041)

Shay Ben Moshe 16-09-10 15:45

מאמר חדש: השוואה בין סוגי הכנסה למערך
 
היי חברים, כתבתי מאמר חדש השוואה בין סוגי הכנסה למערך.
בדקתי 4 שיטות למלא מערך בנתונים וניתחתי אותן.
אשמח מאוד לקבל תגובות בבלוג (וגם כאן).

מקווה שמישהו למד משהו :)

astricks 16-09-10 17:44

אחלה מאמר, אבל מוזר לי שאתה מציג את הפונקציה array_push ולא מתייחס ל array_unshift. אפשר להרחיב את המאמר במילים אחרות.

Daniel 16-09-10 20:01

אחלה מאמר - אבל, לפי דעתי הוא מאוד לא רלוונטי.

בשביל העניין, גם, תמיד עדיף להגדיר משתנה:
PHP קוד:

$var 'string'

מאשר
PHP קוד:

$var "string"

כי הדרך הראשונה יותר מהירה - אבל אף אחד שפוי לא יגיד לך "מעכשיו לא כותבים עם גרשיים, רק עם גרש" - ולמה? כי הזמן שזה לוקח - מזערי.

אבל ברמות האלה - שאם אני אעשה מיליון (!!!) הכנסות למערך אז יהיה לי הפרש של חצי שניה.... לפי דעתי זה הרבה פחות ריאלי וחשוב.

וכמובן - לכל פונקציה יש את היעוד שלה:
  • כאשר אני ארצה ליצור מערך שמכיל סדרה של איברים "a-b-c-d-e-...", "1-2-3-4-5-...", או אפילו גם עם קפיצות - "1-3-5-7-9" - אז range זאת הפונקציה
  • במידה ואני רוצה להוסיף אלמנט חדש לסוף המערך, אז אני יכול לבחור בין array_shift (וגם להכניס כמה איברים בו זמנית) לבין $array[] = "TEST";. במידה וזה איבר אחד, [] כמובן עדיף.
  • כאשר אני ארצה להכניס אלמנט למקום שאני יודע אותו מראש - אני אשתמש ב-$array[$i]

הביצוע והתהליך מעולה - אבל לפי דעתי הרעיון עצמו של להשוואות בין 3 השיטות בנושא זה פחות רלוונטי. לכל פונקציה יש את היעוד שלה - וגם לא לשכוח להסתכל, האם כשאני מכניס 40 איברים - אולי array_shift יעיל יותר? וכשיש מערך מאוד מאוד גדול / קטן / בינוני / מתחיל מ-INDEX גבוה וכו', אני בטוח שיש סיכוי שלפחות חלק מהתוצאות ישתנו.

Shay Ben Moshe 17-09-10 00:48

@astricks, האמת שכן בדקתי, זה היה כל כך כל כך כבד שהחלטתי לוותר על זה.
@MasterT, קודם כל אני די מקפיד לרשום ' ולא " גם כיוון שזה טיפה יותר מהיר (האמת שזה לא כל כך משמעותי פה), וגם כל הקטע של escaping פה.
אני מסכים איתך שהתוצאות הן לא מאוד מדוייקות אבל זה כן נותן מושג כללי.

BlueNosE 17-09-10 02:37

כמה פעמים רצה הבדיקה? עשית ממוצעים לכל דבר?

יוזמה יפה, ראיתי פעם השוואה בין foreach לwhile בשימוש עם each(), לשיטה שלישית כלשהי. התוצאות היו מפתיעות, אבל אני לא מצליח להיזכר בהן.

בניה 17-09-10 08:22

יש אתר שעושה השוואות בין כל הדברים האלה:
http://www.phpbench.com/
אבל בדרך כלל זה זניח

Shay Ben Moshe 17-09-10 13:46

ציטוט:

נכתב במקור על ידי BlueNosE (פרסם 779619)
כמה פעמים רצה הבדיקה? עשית ממוצעים לכל דבר?

יוזמה יפה, ראיתי פעם השוואה בין foreach לwhile בשימוש עם each(), לשיטה שלישית כלשהי. התוצאות היו מפתיעות, אבל אני לא מצליח להיזכר בהן.

הרצתי כל בדיקה לפחות 5 פעמים ועשיתי RESTART באמצע. התוצאות היו בסטיות ממש ממש קטנות.

astricks 17-09-10 14:42

MasterT - אתה צודק אבל לא בריא לזרוק מושגים כאלה באוויר ללא הסבר. יש בכל זאת הבדל בין גרש לגרשיים.. וסיבה שהוא מתקמפל יותר מהר
Shay Falador - אני לא מסכים איתך.. לא סתם הפונקציות קיימות והן מאוד שימושיות למצבים מסויימים. בלי שבחנתי את הנושא יותר מידי.. כמודל מחסנית הפונקציות האלה מאוד רלוונטיות למרות שהן יותר איטיות.. אלא אם כן יש לך פיתרון אחר לכך, אבל אני מניח שזה כבר מאמר מפני עצמו


כל הזמנים הם GMT +2. הזמן כעת הוא 14:00.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ