לגלישה באתר בגירסה המותאמת לסלולאר
| הוספת הודעה
הגדרות תצוגה

הגדרות עץ הודעות

מאפייני צפייה

הצג טקסט בתצוגה
הצג תגובות באופן
עדכן
1307113,071 עוקבים אודות עסקים

פורום תכנות net.

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

הנהלת הפורום:

אודות הפורום תכנות net.

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

צרף
תמונה וידיאו קובץ
קבצים המצורפים להודעה

לצפיה ב-'שאלה ב Producer Consumer pattern'
שאלה ב Producer Consumer pattern
31/07/2016 | 10:28
9
123
היי
צריך התייעצות לגבי Producer Consumer pattern.
אני עובד על מערכת שמקבלת "משימות \ Items" וצריכה לעבוד עליהם.
כל Item עובד בטרד ולוקח שניה לעבוד עליו. יכול להיות שיגיעו לי 4 Items בשניה ויכול 200 Items בשניה. מה שאני רוצה לשאול זה במנגנון Producer Consumer איך אני מחליט כמה Consumers להרים? אם אני שם 200 Consumers אז כשנכנסים לי 200 items זה טס לי ותוך שניה באמת גומר הכל. אבל לפעמים מספיק רק 2 Cons. יש מצב גם שבמשך דקה לא נכנס כלום אז אפשר "לשתק את כל המנגנון" 
אז האם אפשר ב RunTime לקבוע את מספר ה Consumers (כמובן עד גבול מסויים)? האם זו הדרך? האם ניתן להסתכל ב RunTime על התור ולבצע שינויים כמו להוסיף או להוריד? 
תודה רבה.
לצפיה ב-'אתה יכול לעבוד עם Queue'
אתה יכול לעבוד עם Queue
31/07/2016 | 10:56
8
41
מי שרוצה יכול לדחוף items לתוך ה queue ואתה מחליט ב RunTime כמב אתה מושך בו זמנית.
לצפיה ב-'כמובן שאני עובד עם QUEUE'
כמובן שאני עובד עם QUEUE
31/07/2016 | 11:06
7
48
אני בהתלבטות בין Data flow TP לבין BlockingCollection.
אז לקבוע את מספר ה Consumers ב Runtime זה דבר מקובל?
מה הבעיות שעלולות לצוץ? האם כשאני מזהה שאין יותר Items אני אבצע Complete וככה אשחרר את ה Consumers?.. זה אומר שב Item הבא אני מרים את זה מחדש... כי אחרי Complete ה queue "ננעל".
לצפיה ב-'לא יודע באיזה מהם עדיף, כנראה במי שנוח יותר'
לא יודע באיזה מהם עדיף, כנראה במי שנוח יותר
01/08/2016 | 08:55
6
36
כן מקובל - ואפילו נהוג (לא בטוח כמה זה נהוג בin-process)
 
בעיה - בעיקר יציאה מסנכרון ו starvation, במקרה יותר גרוע race conditions והכי גרוע deadlocks - בגדול כל מה שיכול לצוץ בתוכנה שהיא multi-threaded והמשימה לא מוגדרת היטב או לא מוגנת היטב מבעיות כאלו.
 
לרוב עושים scale-out במקרה שהconsumers הם multi-process לפי CPU, במקרה של עיבוד in-process כנראה הייתי עושה על כמות עבודה בתור. בכל מקרה - לא הייתי הורג אל כל העובדים, תמיד להשאיר לפחות אחד.
לצפיה ב-'לא הבנתי..'
לא הבנתי..
02/08/2016 | 13:49
5
19
את המשפט: 
לרוב עושים scale-out במקרה שהconsumers הם multi-process לפי CPU, במקרה של עיבוד in-process כנראה הייתי עושה על כמות עבודה בתור.
<font> לפי ה CPU? אתה יכול להסביר טוב יותר?</font>
<font>ולפי מה שכתבת והבנתי אז זה מקובל להגדיל את ה Consumers ב Runtime?</font>
<font>אם כן, אז לפי מה? זמן ממוצע של ITEM בתור?</font>
<font>ומתי אני מבצע Complete? אין לי מערך ידוע מראש שאני יודע מתי אני צריך לבצע Comlete.</font>
לצפיה ב-'אנסה להסביר את עצמי'
אנסה להסביר את עצמי
03/08/2016 | 08:47
1
23
בעולם של microservices קרוב לוודאי המצב שיהיה שיש לך producers ששולחים מידע מעל service-bus או מערכת queuing/messaging אחרת.
הconsumers הם לרוב worker services שמאזינים למערכות queuing האלו, כאשר כל consumer צורך לרוב הודעה אחת אחרי השניה ומטפל בהן.
במקרה של עומס במערכת הqueuing שאתה משתמש בה, או לחליפין עומס בממוצע על ה CPU במכונה שמריצה את ה consumers שלך גבוהה מידי נהוג להוסיף עוד מכונה עם עוד consumers. זה בעולם של microservices וcloud ושאר הבאזז ורדס.
 
במקרה שלך, אתה מבקש להגדיל את כמות ה threads בprocess שמטפלים בעבודות (זהות), כאשר ה producer יושב באותו ה process יחד עם ה consumers. כלומר כולם יושבים באותו ה process אבל ב threads שונים.
במקרה כזה קשה לדעת איך להגדיל את כמות הצרכנים, מהסיבה הפשוטה שלא תמיד הוספה של threads תפתור את הבעיה (זה לא פלסטר קסם).
 
אם ה consumers חנוקים על IO - תדאג שהconsumer יהיה async וידע לשחרר את הthread שהוא עובד עליו (async await על task) ולהתחיל לטפל בהודעה נוספת.
במקרה והconsumers שלך חנוקים על CPU - הוספה של עוד threads רק תרע את המצב שלך.
לצפיה ב-'הבנתי.תודה רבה.'
הבנתי.תודה רבה.
03/08/2016 | 09:00
3
לצפיה ב-'לגבי איך להגדיל'
לגבי איך להגדיל
03/08/2016 | 09:00
2
19
הייתי שם עוד thread שיהיה מעין monitor, הוא כל שניה ידגום את גודל התור עבודה שלך.
תקבע לעצמך שאם יש בתור 100 עבודות (נניח) אתה מוסיף עוד consumer
אם יש פחות מ 50 אתה מוריד 1.
איך לבצע הורדה שלך consumer? באמצעות הכנסה של הודעת poison לתור.
אחד העובדים יקרא את הודעת ה poison, ויעשה return כדי לסיים את עבודתו.
 
אני בטוח שיש פתרונות יותר אלגנטיים לבעיה הזאת
לצפיה ב-'אלו בדיוק הדברים שאני חשבתי עליהם'
אלו בדיוק הדברים שאני חשבתי עליהם
03/08/2016 | 10:16
1
14
ולא ידעתי אם אני עושה משהו קטסטרופלי מבחינת קוד או משהו שהוא לגיטימי.
חשבתי על Monitor שמנהל את כל ה Consumers אך לא מצאתי כלום באינטרנט לגבי זה.
 
לצפיה ב-'אם זה משהו לימודי/אקדמי'
אם זה משהו לימודי/אקדמי
03/08/2016 | 12:41
19
לך על זה, תכתוב לבד, תשים github ותבקש ממישהו עם ניסיון בפיתוח וראש על הכתפיים (לא תמיד בעל ניסיון הוא בעל ראש פעיל) לעשות לך code review.
 
אם זה משהו לעבודה, תבדוק אם זה הפיתרון שאתה באמת רוצה ללכת אליו.
אולי עדיף לא למקבל עבודה אלא לפתור את הבעיה שיוצרת לך את הצוואר בקבוק:
א. אם זה עומס ב IO אז לנסות ולהשתמש ב async IO
ב. אם זה עומס ב CPU אז הוספה של threads בכל מקרה לא תועיל אז תוסיף עוד מחשבים לקלחת שמריצים את הconsumer שלך. במקרה הזה אתה לא תוכל להשתמש כבר ב queue פנימיים אלא תצטרך מערכת חיצונית שתנהל לך את הqueue
לצפיה ב-'שאלה על threads'
שאלה על threads
01/08/2016 | 21:55
2
55
יש לי מצב שאני רוצה להפעיל כמה theads במקביל גם מהקליינט וגם מהסרבר.
אני אסביר:
אני רוצה לטעון כמה דברים לUI. לדוגמא: רשימת תמונות, רשימת סמלים, רשימת שמות.
כל הטעינות האלה צריכות לרוץ במקביל וכולם פונות לשרת.
אבל הרשימת סמלים זאת פעולה שצריכה בנוסף להפעיל שרות חיצוני והיא לוקחת זמן. והUI נתקע.
 יש הרבה סמלים וגם אותה אני רוצה לחלק לthreads שירוצו במקביל.
מה שחשבתי (ותקנו אותי אם זה הגיוני בכלל)
מהקליינט להריץ במקביל :
טעינת תמונות, טעינת סמלים, טעינת שמות.
הטעינת סמלים בסרבר שפונה לשרות חיצוני תחלק את הנתונים לקבוצות (נניח יש 150  אז לקבוצות של 5 כך ש5 טסקים יפעלו במקביל) בסיום זה יחזיר list של ה150 סמלים לקליינט.
ז"א ש3 tasts מהקליינט ירוצו במקביל ואחד מהם גם בסרבר יפוצל וירוץ אסינכרוני.
האם זה הגיוני?
ואם לא, אז למה? ואם כן אז איך הכי נכון לעשות את זה?
לצפיה ב-'למה לך להתעסק עם threads?'
למה לך להתעסק עם threads?
02/08/2016 | 08:44
1
48
 
תתעסק רק עם tasks
ברגע שאתה מתעסק עם asyncIO אתה לא תוקע את ה thread של ה UI.
עבור משימות ארוכות תריץ את ה task עם דגל של LongRunning כדי להגיע למתזמן משימות שיש לו אישור לעשות over scheduling ולייצר עוד threads לפעולות שלך.
 
הצעה שלי אל תעשה premature optimization ותחלק את העבודות ל bulks לפני שאתה רואה שיש עומסים או פגיעה בביצועים
לצפיה ב-'+1'
+1
04/08/2016 | 10:57
10

חם בפורומים של תפוז

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

מקרא סימנים

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