ויקיפדיה:מגבלות המפענח – הבדלי גרסאות

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


חלק מרכזי בתוכנת מדיה ויקי מכונה "מפענח" (Parser), שמתרגם את תוכן הדף כפי שנראה לעורכים, לקוד [[HTML]] שנשלח לדפדפן של הקורא, בתהליך שמכונה "פענוח".
חלק מרכזי בתוכנת מדיה-ויקי מכונה "מפענח" (Parser), שמתרגם את תוכן הדף כפי שנראה לעורכים, לקוד [[HTML]] שנשלח לדפדפן של הקורא, בתהליך שמכונה "פענוח".


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


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


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


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


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


{| class="wikitable"
{| class="wikitable"
שורה 130: שורה 130:
** הנתון מתייחס לגודל ה-HTML שהמפענח מייצר מקוד המקור
** הנתון מתייחס לגודל ה-HTML שהמפענח מייצר מקוד המקור
* '''מספר ישויות ה־Wikibase שנטענו'''
* '''מספר ישויות ה־Wikibase שנטענו'''
** נתון זה נוסף על ידי הרחבת wikibase, שמאפשרת גישה לוויקינתונים.
** נתון זה נוסף על ידי הרחבת wikibase, שמאפשרת גישה לו[[ויקינתונים]].
* '''שימוש של לואה בזמן'''
* '''שימוש של לואה בזמן'''
** כפשוטו
** כפשוטו
שורה 139: שורה 139:
המידע הזה שימושי כאשר דף גדול מתחיל "לעשות צרות": למשל, הוא אינו מוצג כפי שאנו מצפים, טעינתו אורכת זמן רב, שמירתו אורכת זמן רב, קטגוריית תחזוקה מסתורית מופיעה בתחתיתו, וכן הלאה.
המידע הזה שימושי כאשר דף גדול מתחיל "לעשות צרות": למשל, הוא אינו מוצג כפי שאנו מצפים, טעינתו אורכת זמן רב, שמירתו אורכת זמן רב, קטגוריית תחזוקה מסתורית מופיעה בתחתיתו, וכן הלאה.


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


שימוש נוסף הוא בפיתוח יחידות עם קוד לואה. נוכל להשתמש במידע זה כדי למצוא יחידות שדורשות אופטימיזציה, וכן כדי למדוד באיזו מידה שינויים שעשינו בקוד היחידה השפיעו לרעה או לטובה על צריכת המשאבים.
שימוש נוסף הוא בפיתוח [[ויקיפדיה:יחידה|יחידות]] עם קוד לואה. נוכל להשתמש במידע זה כדי למצוא יחידות שדורשות [[אופטימיזציה]], וכן כדי למדוד באיזו מידה שינויים שעשינו בקוד היחידה השפיעו לרעה או לטובה על צריכת המשאבים.

[[קטגוריה:ויקיפדיה - תמיכה טכנית|מגבלות המפענח]]

גרסה מ־06:42, 24 במאי 2019

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

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

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

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

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

בדיקת המשאבים שהדף צורך

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

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

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

זמן CPU 1.368 שניות
זמן אמיתי 1.401 שניות
מספר הצמתים שקדם־המפענח ביקר בהם 13,951/1,000,000
מספר הצמתים שקדם־המפענח יצר 0/1,500,000
גודל הטקסט המוכלל לאחר הפריסה 1,022,596 מתוך 2,097,152 בתים
גודל הפרמטרים של התבניות 13,426 מתוך 2,097,152 בתים
עומק הפריסה הגבוה ביותר 7/40
מספר פונקציות המפענח שגוזלות משאבים 1/500
עומק הרקורסיה של הפריסה 0 מתוך 20
אורך הפריסה לאחר ההרחבה 194,783 בתים מתוך 5,000,000 בתים
מספר ישויות ה־Wikibase שנטענו 0 מתוך 400
שימוש של לואה בזמן 0.675/10.000 שניות
שימוש של לואה בזיכרון 2.5 מגה־בייטים/50 מגה־בייטים

אם אין לכם הרשאות לערוך דף מסוים, עדיין תוכלו למצוא את המידע: מהדפדפן עצמו בקשו לראות את "קוד המקור" של הדף (כאן מדובר לא במה שמכונה "קוד המקור" בוויקיפדיה, אלא בקוד ה-HTML שנשלח לדפדפן), בדרך כלל בעזרת הקשה על Ctrl+U. בקוד המקור חפשו הערת HTML עם הכותרת newPP. הערה זו מכילה את הנתונים, אם כי השמות אינם מתורגמים לעברית.

הערת HTML ‏ newPP, מאותו הדף
<!-- 
NewPP limit report
Parsed by mw1255
Cached time: 20190523164105
Cache expiry: 2592000
Dynamic content: false
CPU time usage: 1.696 seconds
Real time usage: 1.732 seconds
Preprocessor visited node count: 13951/1000000
Preprocessor generated node count: 0/1500000
Post‐expand include size: 1022596/2097152 bytes
Template argument size: 13426/2097152 bytes
Highest expansion depth: 7/40
Expensive parser function count: 1/500
Unstrip recursion depth: 0/20
Unstrip post‐expand size: 194783/5000000 bytes
Number of Wikibase entities loaded: 0/400
Lua time usage: 0.749/10.000 seconds
Lua memory usage: 2.45 MB/50 MB
-->
<!--
Transclusion expansion time report (%,ms,calls,template)
100.00%  871.947      1 -total
 88.82%  774.436      1 תבנית:לוחות_ממשחק_שחמט
 80.46%  701.552     76 תבנית:לוח_שחמט_מ-FEN
 15.12%  131.804    152 תבנית:לוח_שחמט_מ-FEN/אותיות
 10.83%   94.462      1 תבנית:Pgn
  8.62%   75.188     76 תבנית:עברות_רישום_שחמט
  7.98%   69.598     76 תבנית:עברות_מסע
  6.79%   59.234    152 תבנית:לוח_שחמט_מ-FEN/מספרים
  2.82%   24.572   1064 תבנית:!!
  0.40%    3.489      1 תבנית:משוך_רישום_שחמט
-->

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

משאבים ומגבלות

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

חלק מהמשאבים עוסקים בגודל, חלקם במידת הסיבוך של הדף, וחלקם במשאבים שמשמשים לביצוע קוד לואה.

פירוט נוסף אפשר למצוא בוויקיפדיה באנגלית, בדף en:Wikipedia:Template limits ובדפים נוספים.

  • זמן CPU
    • ל"ידיעה בלבד", לא מתאר משאב חסום. המידע מתאר את מחיר פענוח הדף כולו
  • זמן אמיתי
    • דומה לסעיף הקודם, אבל מתאר כמה זמן עבר מאז השרת החל בפעולת הפענוח, עד שזו הסתיימה. זמן זה יכול להיות פחות או יותר מהקודם, עקב ריבוי משימות מצד אחד, ועיבוד מקבילי מצד שני
  • מספר הצמתים שקדם־המפענח ביקר בהם
    • נתון זה מתאר את מידת ה"סיבוך" של הדף, כאשר הסיבוך תלוי בעיקר בתבניות המופיעות בדף, ותבניות עזר שנקראות על ידן
  • מספר הצמתים שקדם־המפענח יצר
    • גם כאן, הנתון מתאר את רמת הסיבוך בפענוח הדף
  • גודל הטקסט המוכלל לאחר הפריסה
    • נתון זה מתייחס לגודל ולא לסיבוך, כאשר הכללים לחישוב הגודל מורכבים, ומוסברים חלקית בוויקיפדיה באנגלית בדף en:Wikipedia:Post-expand include size
  • גודל הפרמטרים של התבניות
    • סך גודל כל הפרמטרים שמועברים לכל התבניות. אם תבנית משתמשת בפרמטר מסוים מספר פעמים, גודל הפרמטר מוכפל במספר הזה. כל שימוש בכל תבנית נספר, כלומר עבור תבנית שמופיעה מספר פעמים בדף, כל מופע תורם את תרומתו
  • עומק הפריסה הגבוה ביותר
    • מתייחס לתבנית שקוראת לתבנית שקוראת לתבנית וכן הלאה.
  • מספר פונקציות המפענח שגוזלות משאבים
    • פונקציות מפענח מסוימות, כמו למשל {{#קיים, נחשבות "יקרות", ומוטלת מגבלה על מספר הקריאות לפונקציות כאלו מדף אחד
  • עומק הרקורסיה של הפריסה
    • דומה ל"עומק הפריסה", ומתייחס לתבנית שקוראת לעצמה, ישירות או דרך תבנית אחרת
  • אורך הפריסה לאחר ההרחבה
    • הנתון מתייחס לגודל ה-HTML שהמפענח מייצר מקוד המקור
  • מספר ישויות ה־Wikibase שנטענו
    • נתון זה נוסף על ידי הרחבת wikibase, שמאפשרת גישה לוויקינתונים.
  • שימוש של לואה בזמן
    • כפשוטו
  • שימוש של לואה בזיכרון
    • כפשוטו

שימוש במידע

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

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

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