עבור לתוכן

פירסור דפי אינטרנט ו-multi threading

Featured Replies

פורסם

היי,

השאלה שלי היא טיפל'ה מורכבת אך מאוד נקודתית.

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

עבדתי בהתחלה עם PHP וזה לקח נורא הרבה זמן.חשבתי לעבור לשפה שתומכת Multi Threading ואולי לחסוך זמן יקר?

אז ככה:

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

  • באיזה שפה רצוי להשתמש? אני מניח ש-ASP.NET C#? או אולי בכלל סקריפט PYTHON או משהו?

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

תודה מראש!

פורסם

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

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

אין לי ספק ש-#C היא יותר מהירה מ-PHP. חוץ מזה, מומלץ לבדוק אם האלגוריתם שלך מספיק יעיל (הוצאת רשימת הלינקים מעמוד אמורה להיות פעולה די מהירה).

פורסם

כמה הערות קטנות,

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

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

1 - אם אתה יודע מראש איפה רוב העמודים שלך נמצאים, עדיף למקם שם את השרת (לדוגמא אם אתה שולף בעיקר עמודים מהארץ עדיף שהשרת יהיה פיסית בארץ).

2 - תנסה ליצור יותר תארדים מאשר ליבות ותבדוק (על ידי ניסוי וטעיה) מה המספר שיתן לך תוצאה אופטימלית

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

פורסם
  • מחבר

לפי מה אתה אומר ש-C# יהיה הרבה יותר מהיר באלגוריתם הזה? רק בגלל ה-MT?

כמה דרכים יש לכתוב את האלגוריתם? אתם מכירים ספרייה טובה לשליפת לינקים מדפי HTML ב-C#?

בעיקרון מה שהאלגוריתם עושה זה איטרציה כזו:

- מקבל כתובת URL

- ה-URL עובר פירסור

- נשלפים כל תגי ה-A בעזרת REGEX

- מעבר ל-URL הבא

אפשרי לעשות את זה יותר יעיל? ברמת הפשט

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים