DCSIMG
ASP.net - מאחורי המסך

מאחורי המסך

משה למפרט, על תכנות מתקדם וביצועים ב-Web.

על הבלוג

עוד חדשות

אתרים שיש לי בהם יד ורגל

Browse by Tags

All Tags » ASP.net (RSS)
HebMorph–חיפוש מורפולוגי עברי. סיקור ושימוש ב-Production
ביום שלישי האחרון השתתפתי בערב מעניין (ישר כח למארגנים) שהיה במרכז המחקר והפיתוח של Microsoft בהרצליה. אחת ההרצאות שם הייתה על כלי מעניין בשם HebMorph , שהוא תוסף ל-Lucene/ Lucene.net עבור חיפושים מורפולוגיים בעברית. לאחר ההרצאה שוחחתי קצרות עם איתמר , המרצה והמפתח, וסיפרתי לו שהכלי שלו נותן תוצאות מצויינות אבל הביצועים שלו בעייתיים. איתמר חייך, אמר לא יכול להיות ואולי טעינו בכמה דברים ונתן כמה רעיונות. אחר כך כבר נכנסנו למצגת הבאה ולזו שאחריה (זו על ה-nodejs) שזה תחום שמסקרן אותי – ולא מהיום. למחרת...
Cache עם Lock מבוסס memcached
בעבר כתבתי על הבעיה הלא מאוד לא נפוצה שנגרמת כאשר משום מה מתבצעת פעולת Flush לחלקים גדולים של ה-Cache. מערכת שביום יום מתמודדת בהצלחה עם העומס ונותנת זמני תגובה מצויינים, מגמגמת ואף קורסת לדקות ארוכות בשעה שה-Cache עליו היא מתבססת או חלקים ממנו קרס. לפני קצת פחות משנתיים כתבתי על פתרון פשוט שמטרתו הייתה למנוע הרצת אותה פעולה מאות אלפי פעמים עד שנכנס ל-Cache אחד העותקים לשימוש בפעמים הבאות. הפיתרון עבד מאוד יפה כל עוד נמצאים באותו שרת, ובאותו Proccess של IIS. גם במקרים שלא, הפעולה צומצמה מאלפים של...
MySQL 5.5.8 GA יצא. מה מעניין את משתמשי .net?
השבוע יצאה סוף סוף הגרסה הסופית של MySQL 5.5. אני מנחש שמשתמשי הלינוקס למיניהם ידושו בו ויחקרו אותו היטב, אבל חוץ מהם, מסתבר שהחבר'ה שם עשו עבודה טובה למדיי בכל מה שקשור למשתמשי מיקרוסופט. 1. ואת זה אני אומר מנסיון אישי, השיפור בביצועים בשליפות מתוחכמות מדהים ! ואני מדבר בעיקר על המחשב השולחני שלי ולא על שרתי מפלצת. 2. השיפורים בביצועים על Windows מורגש היטב, לעיתים עד פי עשר משליפות קודמות. מישהו ב-Orcale לקח לראשונה ברצינות את מערכת ההפעלה הפופולרית ולא רק את Linux/Unix/Solaris. 3. MySQL הפכו...
Posted: Dec 16 2010, 11:39 AM by Moshe L | with no comments
תגים:, ,
GET לעומת POST. וגם: WebServiceים ו-WCF
מדי פעם אני נתקל באתרים שזוחלים לאט. לעיתים הפיתוי מושך אותי לפתוח את כלי הפיתוח שלי ולהבין מה קרה שם. אחד מהאתרים האלה השתמש ב-UpdatePanel וטעינת רכיבי AJAX ארכה דקות ארוכות. בהמשך מישהו מצוות האתר הזה התחיל לעבוד עם WebService שמחזיר JSON. פה כבר מדובר בשיפור מדהים בביצועים, אבל עדיין רחוק ממה שניתן היה להשיג. אילו וכאשר.   נוחות הפיתוח והבדיקה של WebServiceים למינהם ובהמשך WCF הפכה אותם לשימושיים גם בתוך הדפדפן, כמקור למידע אותו משלימים ב-AJAX. מדובר בכלי יעיל, אלא שגם לו יש חסרונות מרכזיים...
דחיסת JS ו-CSS בצד שרת עם YUI
מי שצבר קצת נסיון יודע שחיסכון במשקל דפים ורכיבים נלווים הוא הכרחי. גיליתי באקראי שיש גירסא של דוחס ה-JS וה-CSS של YUI לסביבת .NET בקוד פתוח. אפשר להשתמש בו באמצעים מגוונים או עם MSBuild (מה שנשמע לי מעניין יותר) במהלך בניית גירסת ייצור. מעניין.
לוח שנה ותאריך עברי ב-.NET
מאז ומתמיד השתמשתי בתאריך עברי. השייכות שלו ללוח השנה שעל פיו אני חי (חגים וכו') בגיל צעיר היא מובנת מאליה, ובהמשך - דברים שנהיים הרבה יותר פשוטים כשעובדים לפי לוח שנה עברי, כמו שינויים בתפילה וברכת המזון. בתור מתכנת, נשאלתי לא אחת כיצד עושים שימוש בלוח העברי, ובדרך כלל עניתי מה שעניתי. בהודעה הזו אנסה לפרט קצת יותר כיוון. HebrewCalendar ב-.NET, החל מגירסא 1 קיימת המחלקה System.Globalization.HebrewCalendar , המספקת לוח שנה עברי בדומה ללוחות נוספים מרחבי העולם, הממומשים במחלקות היורשות מ- System...
דפים כמעט סטטיים זוחלים. למה ?
אחת התופעות שאני נתקל בה לפעמים אלו בעלי אתרים שמודעים לבעיות הביצועים של האתר שלהם, ולכן בדף הבית (או דפים מרכזיים) הם מבצעים אופטימיזציה ובודקים כל שלב בנפרד. מנהל של אתר אחד שראיתי אפילו בנה דף שמכיל רק Includeים לדפים (סטטים) אחרים אותם היה מעדכן לפי דרישה. אבל עדיין דף הבית שלו זחל, ואני נשאלתי – למה! התחברתי לשרת שלו והרצתי DebugDiag , שאימת את ההשערה שלי. הסתבר כי הרבה מאוד בקשות שנתקעו למשך שניות אחדות, כלל לא הגיעו למנגנון של ASP ונתקעו הרבה קודם. אז למה? ל-ASP ול-ASP.net יש בתוך Application...
Cache עבור שאילתות עדכון
English: How to Caching updates to minimize I/O cost of these operations, for example – counting views on forum message. the solution I provided is to create a table/static variable that holds updates "log" and update the main heavy table with timer. For example – for counting forum message views, I add row to some log table (that I can store in somewhere else, like RAM drive or MySQL Memory table) with timer updates main table and empty the log table for fast access later. ה בעיה: שרת...
100% CPU ב-IIS
English: how to find what can make your IIS server 100% crazy, and fix it. debugging high CPU usage by w3wp.exe with Microsoft's IIS debugging tools. לעיתים נתקלים בשרת ש"נחנק" ומגיע ל-100% ניצולת מעבד. כמה רעיונות בסיסיים להתחלת פיתרון בבעיה. במקרה כזה דפים מגיבים באיטיות, ומדי פעם נתקעים עם שגיאות כגון Service Unavailable או Server too busy . 1. מה חונק את השרת? Ctrl + Alt + Esc יפעיל את מנהל המשימות. נמיין את "תהליכים" ונחפש מי מתעלל בשרת. בדרך כלל זה יהיה w3wp.exe , (ב...
בעיות (ופתרונות) בשימוש ב-OutputCache לשיפור ביצועים
English: Some Tips for bypass Query Cache problems. First code: simple QueryCache Second code: Add to admin section on the website, and flush cache for URL Last Code: how to force Proxies/Browsers to not store cached content, and return to origin server. I used this technique for set long-time OutputCache, and clear it manually when I know that content changed. In Hebrew I explain why Query Cache fro long times is bad, and why Cache Dependencies is bad and expensive (especially SQLCacheDependency...
מנגנון ניהול Cache בסיסי
English: Simple Cache management function. how to make cache thinks easier. The function below can check if something is in the cache, and also if other Web request, execute the heavy function using SyncLock. לעיתים עולה הצורך לעבוד בתצורה שבה יש משאב (למשל שאילתת SQL כבדה) שיקר לייצר אותו. הפיתרון הפשוט - שומרים אותו בקאש. Cache("name") = value או שצריך לפי מגבלת תאריך ושעה: Cache.Add(Key, Value, Nothing, Expire, Nothing, Priority, Nothing) אבל כל זה מעצבן כל פעם מחדש. אחד החידושים שיצאו...
שיפור ביצועים בשרת SQL
אחד הרכיבים העמוסים ביותר במערכות Web הוא מסד הנתונים. מערכות Web 2 לסוגיהן כמו פורומים, לקוחות IM, מערכות מסרים וכו' נוהגות לנפח את המסד האומלל ולמלא אותו בערימות רבות ומגוונות של מידע, לעיתים כפול ומכופל. המתכנת שמפתח את המערכת לרוב לא מודע להשלכות ולוקח זמן רב (שנים) עד שהבעיות בתכנון המקורי צצות ועולות, בעיקר עם עליית הפופולאריות של המערכת וחניקת ה-CPU של רכיביה. לכל מערכת כזו, ניתן לממש פיתרונות ביצועים משלה, הדורשים הכרות מעמיקה עם רכיביה הפנימיים. אביא דוגמא נפוצה - ורעיונות אפשריים. מערכת...
Service Unavailable, וסתם Timeoutים בסביבת ייצור
English: Simple ways to find and destroy IIS hangs/timeout's. אחת התופעות המרגיזות ביותר היא אתר שעובד כהלכה, ללא עומסים חריגים נראים לעין ופתאום זורק שגיאות בסגנון של Server Unavailable, Server too Busy וכו'. כשמתחברים לשרת, מגלים את אחד משני הדברים: 1. w3wp צורך 100% CPU או קרוב לזה. לחילופין - 100% ממעבד בודד (למשל 50% במקרה של שני מעבדים לוגיים, 25 בארבעה וכו') 2. הכל "מת". מספר ה-Requestים המעובדים עומד על אפס או קרוב לזה, ה-CPU "ישן" על קרוב ל-0% אבל השרת לא...
האקרים תורכיים ניסו לפרוץ בלילה החולף לאתר ערוץ 7 באנגלית - מעניין
במהלך הלילה האחרון נעשה נסיון לפרוץ ל אתר ערוץ 7 באנגלית כחלק מהמלחמה האלקטרונית המתנהלת בימים האחרונים נגד אתרים ישראליים שונים. במהלך הפריצה ניסה הפורץ (שכמובן נכשל) להשתמש ב-XSS בסיסי (script שמפנה location לדף שלו), וגם להעלות לשרת קבצים בסיומות צד-שרת מגוונות (php, asp.net, asp). מה שהפורץ לא ידע זה שהקבצים עוברים דרך Handler ששולח אותם כמות שהם ללקוח, ולכן הם לא יכולים להזיק חרף הסיומת asp/php/aspx. אין לי כ"כ זמן לפרט איך הסיפור הזה נעשה, אבל הנה הקבצים שהוא העלה לשרת וניסה להריץ: cracker...
IE8 בטא 2 בעברית - סיקור מלא
בתור מי שמכור למערכות הפעלה וממשקים בעברית, ניצלתי את הפסקת החשמל הבאה עלינו לטובה כדי להתקין את גירסתו העברית של הדפדפן החדש. כמה צילומי מסך, להנאתכם: הדפדפן עצמו + כלי הפיתוח בעברית (למה "כלים של מפתחים" - ראו בהמשך עוד על התרגום): בתמונה: דף הבית של ערוץ 7 אודות: תפריט דף: נקודת עצירה: לעיתים התרגומים ממש מגוחכים. "מחסנית קריאות" עוד מילא, אבל "יוצר הפרופילים"? גם "צפה" (Watch) הוא אולי תרגום שנכון דקדוקית אבל לענ"ד לא מתאים. אולי - "מעקב"...
More Posts Next page »