الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عجبا ! لماذا الدوت نت بطيئة لهذا الحد !

مغلقرائج
بدأه jooorj في 28 نوفمبر 2006 · 55 رد · 5,062 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

إني أتعجب فعلا !!

ماذا أقول ؟؟ ماذا أفعل ؟؟ يا جماعة أنا مستغرب من البطء الشديد بالدوت نت انا اعمل على السي شارب وما انتهيت من عمل برنامج به 10 فورمات +3 تقارير فقط

حتى كاد الهارد ديسك ينحرق من شدة الخرط والدوران والاحتكاك :(:(

ما الغريب بالاكواد

انا لمن اتصل بقاعدة البيانات بأعمل اتثال مرة وحدة وباقفله لمن يخرج من البرنامج فقط.

وعند عمل الاستعلامات باستخدم دوال كل مرة باعرف SqlCommand + DataAdapter+ Dastaset خاصة بكل فورم لوحده

ثم أن جهازي مواصفاته عالية السرعة 2400 والذاكرة 512 والجهاز من نوع DELL ومش رخيص.

هو من المواصفات الحديثة والثمينة بجد.

وانا استخدم ال SQL Server2005 على جهاز منفصل عليه 1 جيجا الذاكرة.

ياريت تفيدونا يا جماعة الخير وربنا يبارك فيكم ويجمعنا واياكم مع الصالحين في الفردوس الأعلى..

وياريت لو في نصائح لطرق تخرير المكونات Components من الذاكرة بعد الانتهاء من استخدامهم مثل DataSet أوDatatable أو حتى المتغيرات Integer + String وما إلى ذلك.

كما في مشكلة أنه لمن اعمل نوافذ Dialog بحدث وبعدين اعمل لها Dispose() حقيقة الشاشة بترتعش وكاني محمل لعبة فيفا 2010 بدون تعجب هذا ما يحدث معي ..

- كمان معلومة إضافية وقت عم بشغل البرنامج باعمل Task Manager بلاحظ شئ غريب جداااا وهو انه المساحة المخصصة للبرنامج حقي في الذاكرة تبقى تزيد لحين انهاؤه..

أرجو ان تفيدوني بخبرتكم الطويلة ، لأنه يعلم الله أن حجم المأساة بالغ ،وبارك الله فيكم..

تم تعديل هذه المشاركة بواسطة jooorj في 28 نوفمبر 2006 في 23:54

موقوف من المشاركة لقلة الأدب

============================

#2

بفكر أحول Delphi 2005 أو أعتزل البرمجة

لأنه حرام هيك

كمان معلومة

ممكن افهم كيف أسرع برامجي ومايكروسفت فارضة نظام التبطئ !!! مثال ليش كثرت التقسيم

SQlConnection ---< DataDapter---< SqlCommand--< DataSet---> DataTable ----< DataView - ----< dataReader-----<SQlCommandBuilder -----< وغيره كثير لماذا هكذا يا مايكروسفت لماذا ؟؟ هل من مجيب تعبت والله من البطء الجهاز انا خايف على جهازي يخرب من كثر الحك والاحتكاك واللف والدوران للهارد ديسك قبل أسبوع خرب هاردي القديم وكان عليه شغل من 1999م والله حراااااااااااااااام ، حسبي الله ونعم الوكيل

حاسسس نفسي محبط بحق وحقيقي

موقوف من المشاركة لقلة الأدب

============================

#3

السلام عليكم: انا معك ان فعلا الدوت نت بطيء و ده لان ميكروسوفت بتحاول تسهل الامور فبتختصر حاجات كتير و تحطها في كنترول واحد و بالتالي ممكن ضغطة زرار يكون وراها الاف الاوامر و كل مالسهولة تزيد كل مالبرنامج يتقل و ربنا يكون في عونا الموضوع ده مشكله حقيقيه في الدوت عشان نختصر انت هتستخدم حاجه اسمها الثريد thread اعمل عليها بحث في المنتدي و هتلاقي 10 الامثله دي بتعمل لكل عمليه عندك مسار معين جوا البروسيسور بتاع الجهاز يعني بتقسم طاقة البروسيور علي العملايت كلها لكن الاول كل العمليات كانت بتخش في سكه واحده و يحصل زحمة عالبروسيسور الحاجه التانيه لما تشغل البرنامج بتاعك و معاه التاسك مانجر ابقي اعمل تصغير للبرنامج و شوف المساحه اللي بياخدها مالذاكره كام و انا بقولك ان انت هتفاجا تماما يعني مثلا لو كان بياخد 50 ميجا من الرامات لما تصغره هتلاقيه بياخد من 3 الي 10 ميجا و لما تكبره تاني هياخد حوالي 25 ميجا تقريبا

#4

شكرا للأخ physics2000 على متابعته وإجابته القيمة :)

ياسلام ! وبيعمل كدا ليه يعني لمن بيتكبر بياخذ مساحة إضافية ؟؟

بعدين ال thread أعملها فين بالضبط ؟

البرنامج وحدة واحدة إزاي أجزئ الإجراءات ببرنامج واحد أفيدوني أفادكم الله !!

ياجماعة شوفولنا حل حدا يكلم مايكروسفت

موقوف من المشاركة لقلة الأدب

============================

#5

هو مساحته بتصغر لان شكل الفورم بتاخد مساحه كبيره من الرامات و بعدين في حاجه اسمها الجاربتش كولكتور دي بتشيل الاوبجكتس و المتغيرات اللي مبقتش بتستخدم في البرنامج و بالتالي البرنامج يوفر شوية مساحه بالنسبه لموضوع الثريد ده رابط في شرح للموضوع و ازاي تعمل ثريد /index.ph...c=80147&hl= بالتوفيق و مش عاوزين يئس السي شارب لغه قويه بس الصبر شويه

#6

والله انا يئست وبديت أتعب ونفسي مسدودة شوية يا جماعة والصبر نفذ لأن كل منتج من مايكروسفت للاسف يحتاج صبر من ال 1995 وايام الوورد 97 مكنا شغالين ويندوز 3.11 ماله والله رهيب

موقوف من المشاركة لقلة الأدب

============================

#7

سبب البطء هو الكومبايل (التجميع) الأولي الذي يقوم به الدوت نت. لتجنب هذه المشكلة قم بعملية الكومبايل قبل تشغيل البرنامج لأول مرة عن طريق برنامج ngen.exe

http://msdn.microsoft.com/library/default.....asp?frame=true

اللينك هذا لطريقة استعمال ngen ليعمل عندما تقوم بعمل install لبرنامجك

تم تعديل هذه المشاركة بواسطة System Down في 29 نوفمبر 2006 في 11:08

#8

الاخ System Down ممكن توضيح أكثر : كيف يعني لمن أعمل Install أنا أستخدم VS2005 Editor اللي عم بيصمم الفورم والأزرار وكل شئ عن طريقه ولمن أشغل البرنامج باضغط F5 يعني كيف وشو علاقته بال Install الرجاء التوضيح وشكرا لك:)

موقوف من المشاركة لقلة الأدب

============================

#9

أقصد تعمل مشروع deployment ينتج ملف msi تستخدمه للـinstall مثل معظم البرامج التجارية. شئ آخر يسرع البرنامج هو قفل الـdebug mode عند عمل الكومبايل (تجده في خصائص المشروع - حول من debug إلى release).

#10
اقتباس
(تجده في خصائص المشروع - حول من debug إلى release).

هذه زبطت 100%

لكن الاولى لأ:)

بس إذا في كمان شغال تسرع المشروع خبرني الله يحفظك

موقوف من المشاركة لقلة الأدب

============================

#11

يا أخي يوجد الكثير من الأشياء المتعلقه بالمنطق وأخرى كثيره ناتجه عن كتابة أكواد سيئه غير احترافيه.. تجعل البرامج بطيئه. فقبل أن تتهم الدوت نت نفسها والسي شارب وميكروسوفت باتباع سياسات وطرق سيئه تجعل البرامج بطيئه.. راجع ما كتبته من أكواد ! فموضوع تحويل المشروع من Debug إلى Release قبل عملية التوزيع وبعد الانتهاء من مرحلة الاختبار و الـ Debugging -الأمر الذي كنت لا تعرفه-, أتمنى أن يكون اشارة لك بأن المشكله أولا في المبرمج قبل أن تكون في الأدوات التي يستخدمها.

−1

#Read

http://MoutazShams.blogspot.com

projects003.gif

أعتذر عن التغيب هذه الأيام نظرا للانشغال المريب

#12

ههههههههههههاااااااا

أخي معتز شمس السي شارب والفيجوال بيسك نت للأسف أبطء من الجافا

بيكفيك ما كتبته بالاجابة الثانية التي يبدو انك تجاهلتها تماما

اقتباس
ممكن افهم كيف أسرع برامجي ومايكروسفت فارضة نظام التبطئ !!! مثال ليش كثرت التقسيم

SQlConnection ---< DataDapter---< SqlCommand--< DataSet---> DataTable ----< DataView - ----< dataReader-----<SQlCommandBuilder

ولم تجب عليه وما هي طرق الاحتراف بكتابة الاكواد ألا يكفيك أني لا استخدم أدوات Connection وداتا ست بل اكتبها يدويا ...

طب اضف لذلك ال Style للdataGrid أقوم بكتابته بالكود ولا استخدم الويزرد..

ماذا افعل ؟؟ أكثر من هيك

كمان شغلة انا لا استخدم الوان كثيرة ولا أدوات خارجية ..

المشكلة فقط أني مستخدم 10 فورم + 3 تقارير ربما هذا كثير على مايكروزفت سي شارب العملاقة هههههههه ..

ام انها للدعاية فقط... للعلم جهازي مواصفاته عالية جدا والبرامج الثانية بتشتغل عليه زي الطلق :)

موقوف من المشاركة لقلة الأدب

============================

#13

يوجد الكثير جدا جدا من التطبيقات التي تم برمجتها بالدوت نت ومع SQL Server 2005 مثل تطبيقك, وبتشتغل أيضا زي "الطلق"؛ ألا ينبهك هذا لشيء ما ؟

أنا عندما أواجه جزء بطيء في البرنامج, أقوم بمحاولة تحسين الكود, وقد تستغرق عملية تحسين الكود وقت, ولكن ينجح الأمر دائما وأحصل على ما أريد. فاستغل الوقت الذي تلقي فيه التهم على ميكروسوفت.. بتعلم ما تجهل, فأظن أنك انسان مثلنا يجهل أشياء وينسى أشياء ويحتاج إلى التعلم والتفكر دوما. بعد هذا حاول أن تحسن الكود وان شاء الله ينجح معك الأمر وتحصل على ماتريد.

وأنت أرسلت إلي راسله خاصه تقول فيها :

اقتباس
رجاء قراءة الرد

/index.ph...mp;#entry571460

والعمل على ايجاد حل جذري وعدم التخفي بشعار مايكروسف

وشكرا لك

فاعلم يا أخي انني لست متحدث رسمي باسم ميكروسوفت ولا تربطني أي علاقه بها سوى أنني أستخدم بعض منتجاتها مثلك, فأنا هنا مشرف لمنتدى السي شارب ولست C# Product Manager ! ولهذا فلا يوجد لي مصلحة في الدفاع عنها. أنا فقط أردت أن أنصحك بدلا من أقول لك: "ان كانت الدوت نت لا تعجبك, فلا تستخدمها" أو بدلا من عدم الرد على الموضوع أصلا.

وبالنسبه للشيء هذا الذي تقول أنني أتجاهله, فأنا لا أريد أن أشرح أشياء تكون عامه جدا فيقلل ذلك من شأنها فتصبح مبهمه وبالتالي تصبح بلافائده, فأنا لا أرى مشروعك أمامي ولم أرى أي كود؛ فكيف تريد من شخص أن يحسن الـ Performance الخاص ببرنامج ما, وهو لم يرى منه أي شيء اطلاقا !

تواضع يا أخي وتعلم, وان واجهك مشكلة ما في برنامج, فقل لنفسك :

"ما العيب الموجود في الكود الذي كتبته والذي تسبب في حدوث هذه المشكله؟ "

بدلا من أن تقول :

"ما العيب أو ما النقص الموجود في الدوت نت الذي تسبب في حدوث هذه المشكله؟ "

فلا تصبح كلاعب كرة القدم الذي يلقي باللوم دائما على الكرة أو الحذاء عندما يرتكب خطأ أو عندما يخسر.

#Read

http://MoutazShams.blogspot.com

projects003.gif

أعتذر عن التغيب هذه الأيام نظرا للانشغال المريب

#14
jooorj كتب:
بفكر أحول Delphi 2005 أو أعتزل البرمجة

لأنه حرام هيك

كمان معلومة

ممكن افهم كيف أسرع برامجي ومايكروسفت فارضة نظام التبطئ !!! مثال ليش كثرت التقسيم

SQlConnection ---< DataDapter---< SqlCommand--< DataSet---> DataTable ----< DataView - ----< dataReader-----<SQlCommandBuilder -----< وغيره كثير لماذا هكذا يا مايكروسفت لماذا ؟؟ هل من مجيب تعبت والله من البطء الجهاز انا خايف على جهازي يخرب من كثر الحك والاحتكاك واللف والدوران للهارد ديسك قبل أسبوع خرب هاردي القديم وكان عليه شغل من 1999م والله حراااااااااااااااام ، حسبي الله ونعم الوكيل

حاسسس نفسي محبط بحق وحقيقي

يبدو أنك لم تفهم ما هو الـADO.NET. كل من هذه التقسيمات لها عمل محدد. و إساءة إستخدامها هو ما يسبب البطء. مثلاً استخدام الـadapter بدلاً من الـreader في الإتصال الأحادي الجهة يسبب الكثير من البطء. هذا ليس عيباً في الـadapter لأن هذا ليس عملها. قد يبدو الـDataset معقداً (و هو بالفعل كذلك) و لكن كمية الأشياء التي تستطيع القيام بها هائل عندما تقارنها بالـrecordset في الـADO العتيقة (و البسيطة). نعم ADO.NET معقدة (لذا تجد لها كورسات لوحدها) و لكن هذا التعقيد يترجم إلى قوة و مرونة هائلة.

jooorj كتب:
ههههههههههههاااااااا

أخي معتز شمس السي شارب والفيجوال بيسك نت للأسف أبطء من الجافا

بيكفيك ما كتبته بالاجابة الثانية التي يبدو انك تجاهلتها تماما

ولم تجب عليه وما هي طرق الاحتراف بكتابة الاكواد ألا يكفيك أني لا استخدم أدوات Connection وداتا ست بل اكتبها يدويا ...

طب اضف لذلك ال Style للdataGrid أقوم بكتابته بالكود ولا استخدم الويزرد..

ماذا افعل ؟؟ أكثر من هيك

كمان شغلة انا لا استخدم الوان كثيرة ولا أدوات خارجية ..

المشكلة فقط أني مستخدم 10 فورم + 3 تقارير ربما هذا كثير على مايكروزفت سي شارب العملاقة هههههههه ..

ام انها للدعاية فقط... للعلم جهازي مواصفاته عالية جدا والبرامج الثانية بتشتغل عليه زي الطلق :)

كتابة كود الداتابيس يدوياً لا يزيد السرعة. لأن الخطوات هي نفسها عندما تستخدم الأدوات المرئية. نعم الكود اليدوي إحترافي أكثر و له فوائد جمة و لكن زيادة السرعة ليس أحدها. موضوع السرعة ليس موضوع أدوات بل كيفية استخدام هذه الأدوات. إذا كان خوارزمك نفسه بطئ فسوف يبقى بطيئأً حتى لو استخدمت الأسيمبلي.

سأخبرك بمثال حي حول السرعة في التطبيقات. العام الماضي قمت ببرمجة أول تطبيق ويندوز إحترافي (خبرتي العملية هي في الـASP.NET). و بالفعل كان بطيئاً حتى بعد استخدام جميع "الحركات" التي وصفتها لك من قبل. لذا أدركت أن الخطأ ليس من الدوت نت (و الذي تدل الإحصائيات أن سرعته مقاربة جداً ليس فقط للجافا بل للـ++C أيضاً في الأجهزة السريعة) بل من برنامجي. فأعدت فحصه. و بالفعل وجدت أن هناك عملية مكلفة (كويري من داتابيس يحضر سجل واحد) تتكرر داخل حلقة. عندما أخرجت هذا الكويري من الحلقة و بدلته بكويري "أنظف" أصبح البرنامج بسرعة الصاروخ.

لذا قبل أن تلوم الأدوات أنظر إلى الكود و ادرسه جيداً.

#15

الأخوة الكرام شكرا لنصائحكم الجمة والمفيدة

أعلموا وفقكم الله أنني أولا لست مبتدئا بالبرمجة فلدي خبرو 8 سنوات بالفيجوال بيسك هذا اولا.

وكذلك برمجة سنتان بالجافا.

وانا الان ابرمج سي شارب.

وكذلك اان لا استخدم خوارميات كما تفضل الاخ System Down .. كل عملي 10 فورمات + 3 تقارير كريستال ولا أعمل تعقيدات يعني مستخدم أبسط شئ بالبرمجة عرض وتعديل وإضافة والحذف مش مستخدمه مطلقا ... وانا استخدم 2005. وكذلك لا استخدم صور بالتجميل.. اللهم ان كل ما في الموضوع استخدم Label بكثرة وفيها ألوان خلفية فقط. ما أرد قوله ان الموضوع لدي بسيط حيث ان برنامجي هذا فقط للتجريب واسترجاع الخبرات. يعني أبسط شئ ممكن :) أعمله. وياريت الاخوة اللي تفضلوا بالشرح بارك الله فيهم يرسلولي برنامج به اكثر من فورم ويتصل بقاعدة بيانات لعله يكون سريع :)

أهم شئ وبعد الفحص والتدقيق (وجدت الاتي ) : أن البطء بسبب الشكل والتحميل والتجميل، لأني لم أتصل بالداتا بيس فكما تعلمون أول ما يشتغل البرنامج بيقوم بتحميل الواجهات والمشكلة البط بالواجهات مش عارف هاعمل ايه بقا.

أما بالكود كالاتصال: فانا أعمل التالي ورجاء إبداء أراءكم إن تفضلتم:

1- كل حدث بكل فورم به dataReader و dataSet منفصلة. وكذلك SqlCommand.

2- التقارير أول مرة بيطول جداجدااااااااا.

3-عملية الاتصال سريعة واجعلها في حالة Open طول فترة العمل على البرنامج يعني بس اول ما يتصل فقط واستخدم هذا الاتصال بكل الفورم All Forms.

4-Datareader قليلة الاستخدام فأنا أعتمد DataSet مع DataGrid وبكثرة لان عملية الادخال عندي جداول.

فالرجاء غفادتي بخبراتكم في استخدام الداتا ست من حيث كيفية تدميرها بعد كل استخدام.

كذلك تدمير الفورم بعد ضغط زر اغلاق انا اعمل اعمل Form1.Dispose() .

أما بالنسبة لل Static فانا استخدم الفورم الاساسي parent واعمل منه متغير Static وحيد لاستدعائه من قبل الفورم الداخليات لان نظام برمجتي MDI وبه Child.

اما عمليات قواعد البيانات في INSERT + UPDATE بال StoredProcedure في أغلبها.

ولا أحس ببطئها.. كما أسلفت فإني أشعر بالبطء فقط بالواجهات يعني في الفورم لمن يتم تحنيله وبالتقارير بصفة عامة.

شئ أخر أرجو التركيز عليهحول كيفية تدمير المتغيرات مثل SqlCommand وDataAdapter بعد الانتهاء من الفورم..

أرجو ن إخوتي الافاضل أن أكون قربت الصورة لما حدث معي وبانتظار ردودكم...وشكرا

تم تعديل هذه المشاركة بواسطة jooorj في 30 نوفمبر 2006 في 16:33

موقوف من المشاركة لقلة الأدب

============================

#16

لزيادة السرعة : أكثر من استخدام الـDataReader عندما تحضر البيانات للقراءة. في هذه الحالة يمكنك تعبئة البيانات القادمة من الـreader في DataTable و ليس DataSet لأنها أبسط و أصغر حجماً و تؤدي الغرض في حالة القراءة.

بالنسبة لبطء الشاشات ذات الـlabels الكثيرة فهذه سببها عملية تدعى Paint و التي اذا لم تتم بشكل صحيح تبطأ البرنامج بشكل رهيب. لا تحضرني مقالة في هذا الموضوع الآن و لكن أعدك بأن أجدها قريباً.

بالنسبة لبطء التقارير فهناك نقطتان حرجتان بالنسبة للسرعة. الأولى هي الكويري نفسها. ثانياً عملية البطء عند استخدام التقرير لأول مرة (و هو ما يبدو أنه يحصل معك) حلها هو كما قلت استخدام برنامج ngen لعمل pre-compile للفورم.

بالنسية لعملية التدمير كل ما تستطيعه هو إصدار أمر Dispose و وضعها في قائمة الإنتظار للـGC. هذه مشكلة معروفة للغات التي تدير الذاكرة آلياً مثلها مثل الجافا و البايثون. لذا الحل الوحيد هو نداء الـDispose في أسرع وقت ممكن.

تم تعديل هذه المشاركة بواسطة System Down في 30 نوفمبر 2006 في 19:33

#17
اقتباس
سبب البطء هو الكومبايل (التجميع)

:) السي شارب على خبري مو كومبايلر وانما هايبرد وهو مزيج بين الكومبايلر والانتربريتر وهو السبب الاول بتفوق السي والسي بلس بلس (من ناحية السرعه) على الجافا والسي شارب

الشي الثاني حقيقة القاربج كولكتور انصدمت يوم عرفته انه مستخدم :(

افضل اني استدعي الدسيتركتور علشان يزيد الفليكسبيلتي للغة يعني مو تتنظر لين الميثود يخلص علشان يسوي ديستركت للأوبجكت

يعني احس ان مايكروسوفت بالغت بتسهيل اللغة لأبعد حد :( ونست البيرفورمنس

#18

موضوع الـGarbage Collector هو موضوع نقاش حاد بين الكثير من المطورين. نعم هو يبطأ البرنامج نوعاً ما (و لو أن خوارزميات الـGC تتطور بسرعة و أصبحت أسرع شيئاً فشيئاً) و لكن بالمقابل هي تعطيك التحكم الآلي بالذاكرة. الموضوع ليس موضوع سهولة (و لو أنه حتماً عامل مهم) و لكن موضوع أمان. البرامج المدارة Managed آمنة أكثر على الأنظمة لأن للنظام (و بالتالي المستخدم) تحكم كامل بصلاحيات البرنامج في الولوج و التعديل في الذاكرة. طبعاً هذا يقلل أو حتى يلغي مخاطر البرامج المعادية أو المبرمجة بطريقة خاطئة.

System Down كتب:
بالنسبة لبطء الشاشات ذات الـlabels الكثيرة فهذه سببها عملية تدعى Paint و التي اذا لم تتم بشكل صحيح تبطأ البرنامج بشكل رهيب. لا تحضرني مقالة في هذا الموضوع الآن و لكن أعدك بأن أجدها قريباً.

http://msdn.microsoft.com/msdnmag/issues/0...rmsPerformance/

و أنا عند وعدي. مفالة دسمة نوعاً ما و لكن مفيدة جداً.

#19

احيانا تكون اللغات التي بها garbage collection اسرع من ال C++ اذا كان البرنامج يحجز اماكن كثيرة للذاكرة باستخدام new أو اذا كنت تستعمل هياكل بيانات غير مناسبة (وهذا يحدث كثيرا لأن هياكل البيانات في الـ C++ ليست كثيرة مثل اللغات الأخري)

#21

شكرا للجميع على محاولاتهم حل مشاكل البطء التي في إعتقادي الجازم بأنها فرض من مايكروسفت بسبب إدعاء التطوير والتسهيل. وعدم الثبات على منتج بعينه.وذلك بهدف الربح والدعاية والتسويق والمنافسة بأي حال من الأحوال ، يكفينا خير شاهد على ذلك أن مايكروسفت لا تستخدم لغات البرمجة ولا أنظمة التشغيل ولا نظم قواعد البيانات التي من انتاجها في شركتها ولا حتى في برامجها. أشكركم ما قصرتم

تم تعديل هذه المشاركة بواسطة jooorj في 4 ديسمبر 2006 في 11:13

موقوف من المشاركة لقلة الأدب

============================

#22
jooorj كتب:
شكرا للجميع على محاولاتهم حل مشاكل البطء التي في إعتقادي الجازم بأنها فرض من مايكروسفت بسبب إدعاء التطوير والتسهيل. وعدم الثبات على منتج بعينه.وذلك بهدف الربح والدعاية والتسويق والمنافسة بأي حال من الأحوال

مشاكل البطء التي تعانيها ليس سببها تقصيراً من مايكروسوفت. السبب هو الحاجة إلى تغيير التفكير من تفكير اللغات غير المدارة إلى اللغات المدارة مثل الدوت نت و الجافا. الدوت نت ليست بطيئة بتاتاً. إسئل أي محترف حقيقي استخدم الدوت نت و سيقول لك ذلك. أنا أستخدمه بشكل إحترافي منذ صدور بيتا2 عام 2001 و أشهد لك أنه سريع جداً. ليس فقط في الأداء و لكن في التطوير أيضاً بالنسبة للمشاريع الضخمة و بالذات إذا استخدمت الفيجوال ستوديو.

أنا لا أقول أن مايكروسوفت ملائكة أو أي شئ كهذا و لكن كلمة الحق يجب أن تقال: إدعاء مايكروسوفت بالنسبة للدوت نت ليس إدعاءً كاذباً.

jooorj كتب:
، يكفينا خير شاهد على ذلك أن مايكروسفت لا تستخدم لغات البرمجة ولا أنظمة التشغيل ولا نظم قواعد البيانات التي من انتاجها في شركتها ولا حتى في برامجها. أشكركم ما قصرتم

من قال هذا الكلام؟

إسئل أي موظف يعمل في مايكروسوفت و سيخبرك حتماً بغير ذلك.

SQL Server 2005 و BizTalk 2004 و SharePoint Portal Server 2007 و قسم كبير من Vista مبرمج بالدوت نت. و غير ذلك كثير.

#23

اخي اولا اعلم ان جميع لغات البرمجه اي كانت يكون الpergormance الخاص بالتطبيق حسب ما قام به المبرمج

اعلم جيدا ان ال debug يكون ابطىء عند ال run وياحذ من موارد الجهاز اكتر من الrelase وهذا ليس عيب في الكومبيلر ولكن لاختلاف الطريقتين فمثلا في وقت التصميم اي قبل ان ياخذ البرنامج شكله النهائى وتتاكد من انه سوف يؤدي عمله كما اردت تكون علي ال debug mode ام بعد ان تنتهي فيجب ان تكون relase mode وهذا ما يعلمه ويفعله كل developer

اقتباس
أن البطء بسبب الشكل والتحميل والتجميل،

اذا كان ماتقول عنه الشكل والتجميل هو عباره عن اضافه الوان و ما ال ذلك فهو لا يؤثر علي ال performance بهذا الشكل لانه لا يوجد كنترول او فورم بدون لون :rolleyes: فيكون اضافه الاوان ما هو الا تعديل في اللون

بالنسبه للتعامل مع الdatabase :

كون ال connection تكون open مع عمل التطبيق من رايى انه اسواء من ان تقوم بفتح ال connection كلما اردت التعامل مع الداتا بيز وايضا ال datareader في بعض الحالات افضل الف مره من dataset لان ال datareader من الممكن ان تقوم بعمل الobject واستخدامه عند الحاجه اليه وبعد الانتهاء تتخلص منه مع مراعاه انك من الممكن ان تقوم بالاحتفاظ بالقيم الومجوده في array مثلا

بالنسبه لل GC فيجب العلم انه لن يعمل علي غير رغبتك فيجب العلم اولا بطريقه عمله حتي تستطيع ان تحصل علي النتائج بالطريقه التي ترغب بها

بالنسيه لموضوع خبرتك 8 سنوات في ال vb6 فهو ليس فيصل في خبرتك في ال #C لان هناك اختلافات جذريه بين الاثنين مع العلم بان vb6 ليست OOP language اما اذا كنت C# developer فسوف يمكنك التعامل مع VB .net بكل سهوله ويسر لان ال VB.NET ليست بقوه وامكانيات ال سى شارب

واعتذر عن التلخيص علشان انا مشغول دلوقتي

#24

يا جماعة اولا اشكركم جزيل الشكر على الاهتمام البالغ :)

ثانيا : أتعجب من جديد هل الدوت نت ليست بطيئة أريد جوابا مختصرا إما نعم وإما لأ.

وأنا أعلم أن الPerformance بسبب المبرمج أولا.. ولكني عقبت على الاجابات باني لم أستخدم تكنولوجيا من المريخ كل ما فعلته تطبيق برنامج أو مثال من بعض المنتديات عن طريقة أضافة وتعديل وحتى الحذف ما ستخدمتوش كمان شغلة الداتا بسيطة جداجدااااااااااا.. الموضوع بسيط مفهوش تعقيدات تحتاج لعمل Normalization :) ;g كل الموضوع تجريب.. وبأبسط الامور.. لم أبدع في إختراع إضافات فقط تدريب بسيط والامثلة وطريقة الاستخدام هي الشائعة الموضوع مش نظام بنكي :) أو حسابات دولية .. الموضوع سهل جداجداااااا والبرنامج مش كبير الحجم.. والأكواد المستخدمة أنتم تستخدمونها بالمنتدى وانا فقط أقوم بنسخها مع بعض التعديلات التي لا تذكر فأستغرب وأستعجب جدا لمن أسمع حدا يلوم برمجتي أصلا انا لم أبرمج برمجة بمعنى البرمجة كل ما هناك تجميع أكواد...

أما بالنسبة للأخ الذي أسرد قائلا أن خبرة 8 سنوات بالفيجوال بيسك ليست فيصلا ـ أنا أولا لم أدعي أنها الفيصل ثانيا لدي خبرة طويلة بالجافا وانتم تعلمون مالجافا ومدى التشابه بينها وبين الC# :)

وللأهمية أنوه إلى ضرورة الاعتراف بأن الدوت نت أبطأ من اللغات الاخرى بسبب استخدام ال FrameWork الذي لم يذكره أحد من باب التسابق للدفاع على ال C# :):) عارفين ايه يعني منصة مستقلة يعني كل شغل نظام التشغيل شئ والمنصة شئ منفصل ومن هنا يأتي البطء الذي أتعبت وانا عم بأقنع في الاخوة يبدو أنهم لم يلتفتو للامكانية المنصات المستقلة كالجافا وال framework.NET التي تستقل عن نظام التشغيل على حساب السرعات والأداء

موقوف من المشاركة لقلة الأدب

============================

#25

قياس السرعة ليس شيئاً سهلاً لكثرة العوامل الي تؤثر فيه و إختلاف تعريف كلمة "سرعة" بين المبرمجين. كما أن اختبارات السرعة عرضة للتلاعب (و إن كان من غير قصد في بعض الأحيان). و لكن الكثير من الخبراء يتفقون أن الدوت نت قد يكون أبطأ من الـ++C في بعض الحالات و لكن ليس بدرجة كبيرة و بالمقارنة مع الجافا فهي متقاربة. قبل فترة قام مبرمج #C بتحويل لعبة َQuake II إلى الدوت نت (كانت بالـ++C) و كان فرق السرعة بسيطاً. و هناك من حول محرك Ogre للرسومات الثلاثية الأبعاد من ++C إلى #C و كانت نسخة الدوت نت أسرع بقليل. IronPython (نسخة من البايثون على الدوت نت) أسرع في بعض الحالات من البايثون العادية (المبنية على الـC).

http://www.tommti-systems.de/go.html?http:...benchmarks.html

كما يمكنك أن ترى من هذا الإختبار أن فروق السرعة بين اللغات ليس كبيراً أبداً إلا في بعض الحالات.

دعنا من الدوت نت لدقيقة. لنأخذ لغة أخرى و هي الـPython. لغة interpreted. أي نظرياً يجب أن تكون أبطأ من اللغات المجمعة مثل ++C و #C و Java. و لكن Google تسخدمها بكثرة. و هناك لعبة MMORPG تدعى Eve-Online (محاكاة لعالم فضائي له حروب كلملة و نظام إقتصادي واقعي) تدعم لعب آلاف اللاعبين في نفس الوقت و تتحكم في نفس الوقت بعالم اللعبة و النظام الإقتصادي المعقد الخاص بها. و برنامج السيرفر مبرمج بالبايثون.

لذا كما ترى الموضوع ليس موضوع سرعة اللغة بل سرعة الخوارزم. و نعم هذا ينطبق على البرامج الصغيرة أيضاً. سرعة البرنامج تعود أولاً و أخيراً على المبرمج لا مفر من هذا. و موضوع إختيار اللغة لا يبنى على السرعة (إلا في حالات مخصوصة جداً) و لكن على عوامل أخرى.

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…