מחשב חזק לסביבת עבודה למתכנת
-
-
@חוקר אמר במחשב חזק לסביבת עבודה למתכנת:
האם הדבר היחיד שיש לי לשדרג זה מעבד ל i9
האינטואיציה שלי אומרת לי שלא.
בתנאי החומרה שלך, לדעתי יש כאן הרבה מקום לשיפור על ידי תחזוקה נכונה של המחשב. שדרוג חומרה זה הצעד האחרון אחרי שכלו כל הקיצין. בפרט אם אם בהתקנה נקייה של Windows העיכוב הנ"ל נעלם.הנה כמה אפשרויות לשיפור:
- תבדוק את כל התוכנות שרצות בקביעות ברקע, והאם באמת יש לך צורך בהן תמיד, או שלפחות בזמן הפיתוח אפשר לוותר עליהן. שים לב שיש לך 32 תהליכים של גוגל כרום רצים במקביל.
- ניקוי הרג'יסטרי על ידי CCleaner.
- העברת קבצי הפיתוח לכונן SSD.
- מגיגול קצר ראיתי שהעיכוב בהשלמה אוטומטית של phpStorm הוא בעיה נפוצה. יש בתוצאות החיפוש גם כמה פתרונות, אבל לא בדקתי לעומק.
-
הנלענ"ד בנידון:
טיפול בביצועים של מחשב הוא ענין דטרמיניסטי מדעי. יש אנשים שהורגלו לכך שלמחשב יש התנהגויות לא מובנות (להם) ולכן פיתחו השקפה כזאת שמסתכלת על המחשב כסוג טיפוס משונה שחייב תצומי מפעם לפעם ועוד כל מיני אומונות טפלות לגבי מה יעזור ומה לא.
אז הנה מה שיש למדע להגיד על הנושא... (סתם... אני לא טוען שאני יודע הכל, רק מציג כמה נקודות)א) לפעמים יש אלגוריתמים עם ביצועים שפוחתים בצורה דרמטית במיוחד ככל שהכמות של הקלט עולה. למשל מה שידוע כ-quadratic time complexity שזה אומר שהביצועים יורדים במקביל לריבוע של הגידול בקלט.
יש טעות נפוצה בקרב מתכנתים, שלפעמים הם מצפים שקלט מסויים יהיה על פי רוב מספיק קטן שביצועים כאלו לא יהיו מורגשים, ואז מי שעובר גבול מסויים פתאום מתחיל לראות ביצועים מחרידים שיורדים בצורה אקספוננטיאלית.
ראה דוגמה יפה פה. ציטוט נבחר:Dawson’s first law of computing: O(n^2) is the sweet spot of badly scaling algorithms: fast enough to make it into production, but slow enough to make things fall down once it gets there.
כל ההקדמה הארוכה הנ"ל כדי להגיד ש:
מה לעשות, לפעמים זה האשמה של המתכנתים נטו ואין ביכולתך כמעט לעשות שום דבר נגד זה. גם אם נגיד שתקנה i9 ונניח שיש לו ביצועים יותר טובים ב-30%+- זה לא מספיק כדי להעלים את הבעיה. בעיה כזו לא עוזר לזרוק עליו עוד ועוד חומרה, צריך להתלונן ל-JetBrains ולקוות שהם יתקנו את זה. (התרשמתי שהם די קשובים לתלונות). וכמובן צריך להשתמש בגירסה עדכנית ויציבה.ב) חוק חשוב: כאשר יש צאוור בקבוק מסויים, לא עוזר כלל לטפל בדברים אחרים חוץ מצוואר הבקבוק עצמו.
זה לא הגיוני כלל לדבר על ראם ו-SSD, פעולת תחזוקה כזה או אחר וכו' כאשר יש צוואר בקבוק ב-CPU.
אגב, שים לב שלמעבד שלך יש 8 או 16 ליבות, ולכן צריך לתרגם את האחוזים שאתה רואה במנהל המשימות בהתאם. אם יש לך 8 ליבות ואתה רואה שימוש של 12.5 אחוז, תתרגם את זה בראש שלך ל"שימוש 100% בליבה אחת". (ובהערת אגב, אם רואים מספר זה במדוייק, בד"כ זה אומר שמדובר בתהליך שלא חילקו לת'רדים מקבילים ואז לא יעזור להוסיף ליבות.)אני חושש האם התקנת תוכנות כבדות רבות עלול להכביד על המחשב גם לא בשעת השימוש בהם, וליצור זבל מערכת וכדומה
זה מיתוס נפוץ בקרב אלו שהורגלו לא להבין מה קורה בתוך המחשב שלהם. אין שום חשש. נקודה.
המחשב הזדקן מאוד
עוד מיתוס. בוא נהיה מדעיים. הזקנה לא שולטת על רוב ככל רכיבי המחשב, הגשמיים והרוחניים כאחד. הנוסח הזה מגיע מאנשים שהורגלו שאי אפשר להבין את התהליכים הקורים וצריך לתאר אותם במונחים של תהליכים פיזיים שמוכרים יותר למרות שהם לא רלוונטיים פה.
@odeddvir אמר במחשב חזק לסביבת עבודה למתכנת:
האינטואיציה שלי אומרת לי שלא.
האינטואיציה שלך עובדת מצויין! אני רק לא מסכים לחלק מהנימוקים.
תבדוק את כל התוכנות שרצות בקביעות ברקע, והאם באמת יש לך צורך בהן תמיד, או שלפחות בזמן הפיתוח אפשר לוותר עליהן. שים לב שיש לך 32 תהליכים של גוגל כרום רצים במקביל.
עיין לעיל אות ב. במקרה דידן, רואים בפירוש עלייה משמעותית בשימוש CPU בעת עשיית המטלה, ואם כן אין הגיון שדברים צדדים כניקוי כללי יעזרו.
ניקוי הרג'יסטרי על ידי CCleaner.
לענ"ד זה מיתוס גמור. כבר רבות בשנים שאני אוחז כך למרות הטענות הלהוטות של חברים שאחרי ניקוי רג'יסטרי המחשב ממש כמו חדש. אין לזה הרבה הגיון, ואם זה באמת היה יעיל כל כך, מייקרוסופט כבר היו מפתחים משהו.
אבל זה נושא צדדי, כי כנ"ל אות ב בכל מקרה זה לא יעזור לנידון שלנו. וכן לגבי הנקודה השלישית שלך. -
לא מבין כלום בנושא. יכול רק להגיד שאחרי סבל של שנים בנושא (מתכנת+עוד דברים מהצד, ותמיד כבדים), קניתי לאחרונה מחשב חדש. עם תובנה בסיסית שראשית עליו להיות נייח - כי הניידים לעולם לא יהיו תחליף. (בעת הצורך מתחבר אליו עם RDP).
המפרט שקניתי:
11th Gen Intel(R) Core(TM) i5-11600K @ 3.90GHz 3.91 GHz
32 RAM
כמובן גם שאר הרכיבים טובים.
אני מרוצה עד הגג, הביצועים שלו מכל הבחינות עולים עשרת מונים כפשוטו על כל מה שהיה לי קודם. אני לא נתקל בשום בעיות ביצועים.
(אני יכול לפתוח מופעים של VSCODE עם פעילות גדושה - ללא הגבלה + כמה תוכנות אדובי בצד + 150! כרטיסיות כרום + 5 קבצי וורד ענקיים + אמולטור של אנדרואיד - כל זה בלי להרגיש שם כבדות)מסקנה אפשרית
- המעבד שלי הרבה יותר טוב (ייעצו לי שדור 11 זו קפיצה משמעותית מאוד, לכן גם הסתפקתי בi5)
- הבעיה נעוצה אצלך בתחזוק המחשב כפי כל אחד מההסברים המלומדים למעלה או כולם יחד.
ההגיון שלי אומר שהסיבה השניה היא העיקרית והשניה אולי רק חזי לאיצטרופי.
נ.ב. השקעתי בSSD של טרה והכל יושב עליו, מלבד דברים לא שימושיים של איחסון בעלמא (ההסרטות של הנאום שלי בווארט לפני 12 שנה?)
-
@www אמר במחשב חזק לסביבת עבודה למתכנת:
@חוקר אמר במחשב חזק לסביבת עבודה למתכנת:
יש בו קטע אחד שמאוד מפריע לי, שבקבצים גדולים של כ 3000 שורות קוד יש השהיה מסויימת בחלק מההשלמות האוטומטיות
הקובץ הזה נמצא על הSSD?
זה לא נראה הבעיה
רואים בבירור שיש עומס על הCPU. -
@nigun אמר במחשב חזק לסביבת עבודה למתכנת:
זה לא נראה הבעיה
רואים בבירור שיש עומס על הCPU.אני יודע.
בכל זאת, ייתכן שזה קורה בגלל שלא נטען כל הקובץ לזיכרון כי זה מדי גדול, ואז יש תהליך שצריך לעבור על הקובץ בדיסק, שים לב שהדיסק גם עולה ל 4 מ"ב, זה הרבה. -
@WWW אם היית צודק, היה ניכר האטה גם בגלילה בתוך המסמך. או חיפוש פשוט במסמך. חוץ מזה, תעשה חשבון כמה מ"ב עולה מסמך של 3000 שורות. זה כלום שבכלום ביחס לרמות המאסיביות של זכרון שהתוכנה זוללת.
ייתכן שאתה צודק במשהו, אבל לא בצורה שאתה אומר את זה. ייתכן שיש איזה מאגר/מטמון שתומך בהשלמה האוטומטית שגדול מדי. צריך לבדוק יותר לעומק איזה קבצים התוכנה קוראת.
-
@yossiz אמר במחשב חזק לסביבת עבודה למתכנת:
@WWW אם היית צודק, היה ניכר האטה גם בגלילה בתוך המסמך. או חיפוש פשוט במסמך. חוץ מזה, תעשה חשבון כמה מ"ב עולה מסמך של 3000 שורות.
אוישש... לא הבנת אותי.
לא התכוונתי שלא נטען לזיכרון כלל, אם לא, לא היה תופס לו 5GB ראם...אבל אולי בהשלמה האוטומטית הם לא ניגשים לזכרון של הקובץ, אלא בונים אינדקס לבד בזכרון, וייתכן שהאינדקס מוגבל לגודל מסויים, ומשום מה זה בנוי שהוא ניגש לקובץ עצמו בדיסק, וזה מה שגורם להאטה בקבצים גדולים.
כמובן שזה חשש רחוק, אבל אני כותב את זה בגלל שרואים גם קפיצה בדיסק של 4 מ"ב לשניה, שזה הרבה.אולי צריך לבדוק בצג המשאבים>דיסק מה קורה בשניות האלה.
עריכה: אני רואה שהקדמת אותי בעריכה תוכ"ד שכתבתי.
רק אתה טוען שזה לא קשור לקובץ עצמו.
כאמור @חוקר צריך לבדוק בצג המשאבים. -
תודה רבה לכל העונים
אציין מדובר במחשב חדש נייח(למי שאמר התקנה נקיה של ווינדוס, מדובר בהתקנה חדשה נקיה)
אכן הקבצים של הפרוייקט יושבים על ה HD ולא על ה SSD.
כמו"כ הביצועים שלו מעולים! ולמשל פעולת build שבנייד הקודם לכל 2-3 דקות יכול לקחת כאן 16-55 שניות.
כמו"כ השלמת מידע של אובייקטים ופונקציות בקובץ עצמו עובדים מצויין, כמעט ללא שהיה.
הן אובייקטים הקיימים בדף והן אובייקטים מיובאים, הוא משלים יחסית מהר.
החלק הבעייתי הינו בפונקציות המובנות בJS כגון console שהוא לא טוען מיידית.
ניתן לראות כולל לוח ביצועים
כפי שכתבתי לעיל המילה log הוא קיצור ל console.log() ומאידך המילה asyncxx היא קיצור לתחביר קצר לפונקציית asinc מהירה וזה עובד ללא שהיה.
ולגבי הנושא פיצול הקובץ, מדובר בקובץ שמכיל את כל המערכת של ישיבה על קברו ה API וה IVR וכן סינכרון לגוגל דרייב בו מכינים את השאלות ועוד וכל האובייקטים והפונקציות משותפות ומקושרות ולכן הכי קל לעבוד ולתחזק (ולהשלים אובייקטים ופונקציות) מתוך קובץ בודד -
@חוקר
התכוונתי למסך שבו רואים את החלוקה המלאה כמה כל ט'רד צורך (אם יש אפשרות כזו)
לבנתיים נראה שיש 3-2 ט'רדים שצורכים 25-26% שזה די מסתדר עם התזה (2*12.5)
צריך לנסות לראות מה קורה בקובץ יותר גדול, אולי 100K שורות
כשמעצימים את הבעיה לפעמים יותר קל למצוא אותה -
@odeddvir אמר במחשב חזק לסביבת עבודה למתכנת:
מגיגול קצר ראיתי שהעיכוב בהשלמה אוטומטית של phpStorm הוא בעיה נפוצה. יש בתוצאות החיפוש גם כמה פתרונות, אבל לא בדקתי לעומק.
ראשית כל תודה רבה!
למרות שכבר הגדלתי מזמן את הזכרון המקסימאלי לתוכנה ל 10G, מדפדוף בתוצאות שהבאת בדקתי שוב וראיתי שיש שם ערך נוסף שלא כ"כ הבנתי את משמעותו, אבל הגדלתי אותו ג"כ וכעת זמן ההשהיה ירד לחצי.
אפשר לומר שזה הרבה יותר סביל כעת
לפי ההנחיה כאן, הגדלתי גם את הערך של Xms ונראה שזה מה ששיפר משמעותי
https://www.jetbrains.com/help/phpstorm/tuning-the-ide.html#common-jvm-options
מה שכן מסקרן אותי כעת האם שדרוג המעבד יזרז עוד יותר את המהירות
(מה שמעניין שנראה שגם צריכת הCPU נרגעה לאחר השינוי)