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

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

Jaapi 27-09-11 21:25

שאלת יעילות - מהירות לעומת זכרון
 
אני בונה מערכת שדורשת ריבוי שפות (מבחינת הממשק) - בחנתי 3 דרכים ואני לא בטוח מה עדיף.. הרצתי בדיקות על שלושת הדרכים שלי ויוצא שבמצב של מערך עם הרבה ערכים נתפס הרבה זכרון אבל העמוד נטען מהר, ובעבודה עם פונקציה שבודקת עם switch-case העמוד נטען הרבה יותר לאט. אני אציג את הנתונים
רק לציין, מדובר ב-22 ערכים שהוגדרו, ובלולאת for שרצה מ-1 עד מליון כל ערך נבחר לפי חלוקת מוד (%) של המספר הנוכחי ב-2 או 3 (כשהשארית היא 0 - עם דיפולט בהתחלה לערך ראשוני)

דרך ראשונה - הגדרת כל ערכי השפה במערך ושליפה ישירות מהמערך ($arr['string_value'])
- זמן: 0.476591110229 שניות
- זכרון: 6536 bytes

דרך שניה - הגדרת כל ערכי השפה במערך ושליפה בעזרת פונקציה מקשרת (הרעיון הוא היכולת לשנות ולשפר במקרה הצורך בהמשך - שזה די חשוב לעומת להיות תקוע עם סתם מערכים מפוזרים בקוד)
- זמן: 0.960635185242 שניות
- זכרון: 6704 bytes

דרך שלישית - הגדרת פונקציה עם switch ו-case לכל ערך שפה שקיים - עם דיפולט שמחזיר את המחרוזת שקראו לה
- זמן: 1.46953487396 שניות
- זכרון: 848 bytes


אשמח לשמוע את דעתכם,
ואם יש לכם רעיון אחר יותר יעיל - אני אשמח אם תשתפו אותי :) תודה

בניה 27-09-11 21:41

דיקדוקי עניות... בטח שתשתמש בזיכרון ואם המערכת תגיע לרמה שזה מה שמעמיס על השרת, אני מניח שכבר יהיה לך מספיק כסף כדי לעבור למינימום VPS ולעבוד עם MEMCACHE

Jaapi 27-09-11 22:57

יש בזה משהו, אבל עדיין מדובר בהבדל די רציני מבחינת זכרון, לצורך העניין - להגדיר 1000 תאים במערך בשביל להשתמש ב-5 בעמוד כלשהוא

יש לך אולי רעיון שיעבוד מספיק מהר ולא יצרוך כ"כ הרבה זכרון?

Shay-A 28-09-11 01:33

אני מניח שאתה יכול ליצור אתר מראה לכל שפה, אבל אז ככה זה ממש ממש לא נוח לעבוד וכל שינוי מצריך עבודה שחורה...
או שאולי תנסה לעבוד עם שליפת ערך שפה לפי המפתח...

אבל הכי נוח שתעבוד עם קבצי שפה, ככה רוב המערכות עובדות, בשביל מה להמציא את הגלגל מחדש?

yonatan 28-09-11 03:26

זכרון זה הרכיב הכי זול במחשב...
אם כבר אתה מתמקד באופטימזציה , המעבד הוא שקובע בשורה התחתונה, לא כמה זכרון אתה תופס.
אנחנו בעידן ה 64BIT כבר, אתה מודאג ממונחים של המאה הקודמת ..

תסתכל בקובץ phpinfo כמה זכרון יש לך לעבוד איתו עם האפליקציה שלך, ותדע פחות או יותר עם מה יש לך לעבוד.

Jaapi 29-09-11 12:23

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

תודה על התשובות

Shay Ben Moshe 29-09-11 18:40

אתה יכול אולי להריץ את זה על זיכרון אחר כמו memcached או טבלה בזכרון.
בשיטה הזו תקבל ביצועים טובים, והזיכרון יהיה משותף לכל הבקשות, ככה שתמיד תישאר עם כמות זיכרון קבועה ללא תלות בכמות הבקשות.

Skfir 29-09-11 23:24

לא יודע כמה מבחינת זכרון וכל זה אבל אני משתמש בקובץ שפה ככה
קוד:

define("_TAGSMANAGE","ניהול תגיות");

Jaapi 30-09-11 15:13

חשבתי גם על שימוש ב-define, אבל לא ראיתי הרבה הבדל בתכלס בין זה לבין מערכים, ויותר נוח לי לעבוד עם מערכים


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

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