לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #4  
ישן 09-10-2007, 12:33
  ישראל K ישראל K אינו מחובר  
 
חבר מתאריך: 25.08.03
הודעות: 9,114
בתגובה להודעה מספר 1 שנכתבה על ידי bennaaim שמתחילה ב "קוד PHP יעיל"

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

חבריי לפורום הזכירו בהודעות ממעל, משך זמן מסויים שנחשב לטוב או איטי מדי. אני מעריך שהם התכוונו למהירות של דף אינטרנט ממוצע, דבר שכמובן נכון, אך אם נדייק, אין אפשרות לקבוע משך זמן מסויים כי זה תלוי (1) בביצועי השרת, (2) בעומס על השרת, (3) במה שהקוד אמור לבצע, ישנן דפי קוד המבצעים חישוב פשוט וישנן דפי קוד המכילים שאילתות רבות, גישה לקבצים, שליחת הודעות sms, שליחת מיילים, ניתוח נתונים רבים, האזנות תקשורת, "תקשור" עם דפי אינטרנט אחרים [שהגישה אליהם יכוהל להיות איטית] ובד"כ ה]עולה הכבדה מכולם עיבוד תמונה.

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

לסיכום:
ישנן שני כללים עיקריים לשיפור היעילות. 1. שימוש בביטויים יעילים יותר (כגון שימוש במרכאה בודדת לתחימת מחרוזת, במקום שימשו במרכאות כפולות). 2. כתיבת קוד שיבצע את אותה פעולה, בדרך יעילה יותר (ידע עמוק במתמטיקה ישפר בד"כ את החשיבה המתמטית ויעזור רבות בכתיבת קוד יעיל).

נערך לאחרונה ע"י ישראל K בתאריך 09-10-2007 בשעה 12:35.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #5  
ישן 11-10-2007, 22:31
  kGen kGen אינו מחובר  
 
חבר מתאריך: 20.08.07
הודעות: 25
בתגובה להודעה מספר 1 שנכתבה על ידי bennaaim שמתחילה ב "קוד PHP יעיל"

כמו שכבר הבהירו לפניי, "יעיל" זה עניין יחסי. אבל בכל מצב, יש כמה טיפים שיכולים לעזור.

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

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

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

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

ה) תשחרר משאבים. אם אתה עושה mysql_connect בתחילת הדף, זה לא אומר ש mysql_close אמור להיות בסוף הדף. "תצמיד" את הפעולות הנ"ל כמה שיותר לשאילתות שלך, ואל תתן למשאב להיות תפוס סתם בזמן שאתה מבצע קוד שלא קשור ל mysql.

ו) ולמרות הtradeoff שהזכרתי כ"כ הרבה פעמים כאן, keep it simple. אל תסבך את המערכות שלך. זה יבלבל לא רק את המתכנת, אלא גם את המשתמש. תשתדל לעשות כמה שפחות אפשרויות שונות, אבל תבנה כל אחת כך שתעשה יותר.

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

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 01:34

הדף נוצר ב 0.03 שניות עם 11 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר