بسم الله الرحمن الرحيم
اخوانى الاعزاء فى المنتدى
ده مقال جميل جدا قرائته و جبته ليكم اليوم علشان الجميع يستفيد منه
انا قابلت ناس كتير بتتكلم عن الاداء فى ال asp.net و بتقول عنه انه تقيل بس انا بقول لهم لا الخطا مش ال asp الخطا مننا احنا
خلينا نشوف مع بعض فى العشر خطوات دول
1- اول حاجة هى التخطيط و البحث
بحيث نبدا من حيث انتهى الأخرين و نشوف ايه اللى ممكن يجعلنا نقلل كمية الكود
2- الفرق بين String و StringBuilder
حيث ان اكترنا و انا منكم كنا بنستخدم
Dim str As String = ""
فى الوقت اللى المفروض نستخدم
Dim strbuilder As New StringBuilder()
ممكن مع بعض نشوف الفرق بينهم
Response.Write("<b>String Class</b>")
Dim str As String = ""
Dim startTime As DateTime = DateTime.Now
Response.Write(("<br>Start time:" + startTime.ToString()))
Dim i As Integer
For i = 0 To 99999
str += i.ToString()
Next i
Dim EndTime As DateTime = DateTime.Now
Response.Write(("<br>End time:" + EndTime.ToString()))
Response.Write(("<br># of time Concatenated: " + i.ToString))Response.Write("<b>StringBuilder Class</b>")
Dim strbuilder As New StringBuilder()
Dim startTime As DateTime = DateTime.Now
Response.Write(("<br>Start time:" + startTime.ToString()))
Dim i As Integer
For i = 0 To 99999
strbuilder.Append(i.ToString())
Next i
Dim EndTime As DateTime = DateTime.Now
Response.Write(("<br>Stop time:" + EndTime.ToString()))
Response.Write(("<br># of time Concatenated: " + i.ToString))فى الحالة الاولى ممكن ياخد 2 او 3 دقايق علشان ينفذ الكود
لكن فى الحالة التانية بياخد ثانية بالظبط معه انه نفس الكود
بس ايه السبب ؟؟؟؟!!!!!!
فى الحالة الاولى انه لما بيضيف STRING على STRING اخر بيجيب القديم و الجديد و يحطهم فى memory و يبدا بعد كده يحذف القديمة و ده بياخد وقت كبير طبعا
اما الحالة التانية بيعمل عملية تسلسلية و بالتالى مش بيهتم بالقديم
3 -
If Not IsPostBack Then LoadJScripts() End If
طبعا كلنا عارفين
IsPostBack
معنها ان الصفحة لو طلبت للمرة التانية مش تنفذ الكود ده
و بالتالى كده يقلل الكود اللى بيتنفذ فى load
4-viewstate
اكتر الناس اللى بتشغل بتسيب اviewstate مفتوح
enableViewState="TRUE"
و مع ذالك مش بيستعمله
و ده غلط و بيخلى الصفحة تقيلة فى التحميل و تنفيذ الكود
طبعا يتم غلق الenableViewState كده
<%@ Page EnableViewState="false" %>
5-
نفس الفكرة مع الsession variables
بس دى يتم غلقها من ال
Web.config
<sessionState mode='Off'/>
6- Server.Transfer
الفرق بين ال
Server.Transfer و Response.Redirect
طبعا
Server.Transfer
اخف كتير من
Response.Redirect
بس فى الشغل الكبير اتوقع انه
Response.Redirect
دى احسن علشان لو فيه
QUERYSTRING
او تحميل اى اشياء اخرى فى الصفخة المطلوبة اما لو صفحة بسيطة لا Server.Transfer احسن
7 - exception handling
Try
value = HttpContext.Current.Session("Value").ToString
Catch ex As Exception
Response.Redirect("Main.aspx", False)
End Tryده كده اتوقع انه خطا علشان هو بياخد وقت فى الخطا
مما يجعل الصفحة تستدعى بعد وقت
اما هنا
If Not HttpContext.Current.Session("Value") Is Nothing Then
value = HttpContext.Current.Session("Value").ToString
Else
Response.Redirect("Main.aspx", False)
End Ifهنا استخدم قاعدة
IF
فقط
8. Disable tracing and debugging
<configuration>
<system.web>
<trace enabled="false" pageOutput="false" />
<compilation debug="false" />
</system.web>
</configuration>بعد ما يتم الانتهاء من عمل المشروع يستحسن اغلاق ال tracing and debugging
9- Use stored procedures
هنا التعامل مع ال
stored procedures
بيكون اخف كتير
من التعامل ب QUERY
لأنه بياخد معه و هو رايح اسم ال SP فقط
10-
Conn.Close()
Conn.Dispose()طبعا ال CONNECTION
لازم يتم اغلاقه
و عمل
Dispose()
له من ال
memory
و بكده اتوقع ان اداء مشروعك يكون احسن ان شاء الله عن الاول بعد العشر خطوات دول
اتمنى اكون افدتكم
