PDA

View Full Version : علت پایین بودن سرعت vb.net 2005



Amir_Sharif
پنج شنبه 04 اسفند 1384, 12:07 عصر
چرا سرعت اجرای این برنامه اینقدر کم است؟
وقتی با فایل کامپایل شده هم کار میکنم انگار دارم با پنتیم وان کار میکنم با این که سیستم فعلی من LGA 2.8 است.
اگه راهی برای افزایش سرعت وجود داره لطف کنید بهم بگید.

mehranFX
پنج شنبه 04 اسفند 1384, 13:43 عصر
چرا سرعت اجرای این برنامه اینقدر کم است؟
وقتی با فایل کامپایل شده هم کار میکنم انگار دارم با پنتیم وان کار میکنم با این که سیستم فعلی من LGA 2.8 است.
اگه راهی برای افزایش سرعت وجود داره لطف کنید بهم بگید. سرعت برنامه به عوامل متعددی بستگی داره مثل:
1-سایر پروسس های فعال و جاری
2-پیچیدگی عملیات آماده سازی یا حین اجرای برنامه خودمون
3-عدم کد نویسی بهینه
4- استفاده از دات نت بدلیل استفاده از JIT خود بخود برنامه ات رو از سایر برنامه های win32 کُند تر خواهد کرد.
5- اتصالات بانک اطلاعاتی .
6- بهینه نبودن کدهای فراهم کنند داده مثل کوئری و ...

meh_secure
پنج شنبه 04 اسفند 1384, 20:41 عصر
من تابحال به این مشکل بر نخوردم. اما این رو هم قبول دارم که برنامه های نوشته شده در دات نت کمی سرعتشون کمتر از محیط های قبلیه.

niloufar
یک شنبه 07 اسفند 1384, 14:50 عصر
سلام
مشکل رم ندارید. لااقل رم مورد نیاز برای خوب کار کردن (نه فقط کار کردن) 512 است

touraj
دوشنبه 08 اسفند 1384, 14:38 عصر
من زمان اجرا توی vb مشکلی ندارم. اما وقتی کامپایل میشه یه کم سرعتش پایین میاد

ehsan_ansaripoor
دوشنبه 08 اسفند 1384, 23:38 عصر
دوست عزیز بنده هم مثل شما و سایر دوستان از کندی برنامه های تحت Net. ناراحت و نگران بودم تا اینکه به این مساله پی بردم:

در محصولات Net. به دلیل Compile شدن برنامه به زبان Microsoft Interediate Language یا MSIL سرعت برنامه های اجرایی پایئنه.
دلیل این کندی این است که برنامه به محض اجرا کدهای MSIL را به زبان ماشین ترجمه می کند.

حالا دلیل اینکه چرا ماکروسافت از این Compiler استفاده کرده است این است که تبدیل کدهای MISL به زبان ماشین این قابلت را دارند که اگر روزی سیستم عامل دیگری مثل Linux جایگزین ویندوز شد MSIL به راحتی تبدیل به زبان ماشین تحت Linux شود و در واقع برنامه های نوشته شده تحت Net. چشم اندازی به سوی آینده دارند.

niloufar
سه شنبه 09 اسفند 1384, 17:54 عصر
دوست عزیز بنده هم مثل شما و سایر دوستان از کندی برنامه های تحت Net. ناراحت و نگران بودم تا اینکه به این مساله پی بردم:

در محصولات Net. به دلیل Compile شدن برنامه به زبان Microsoft Interediate Language یا MSIL سرعت برنامه های اجرایی پایئنه.
دلیل این کندی این است که برنامه به محض اجرا کدهای MSIL را به زبان ماشین ترجمه می کند.

حالا دلیل اینکه چرا ماکروسافت از این Compiler استفاده کرده است این است که تبدیل کدهای MISL به زبان ماشین این قابلت را دارند که اگر روزی سیستم عامل دیگری مثل Linux جایگزین ویندوز شد MSIL به راحتی تبدیل به زبان ماشین تحت Linux شود و در واقع برنامه های نوشته شده تحت Net. چشم اندازی به سوی آینده دارند.
سلام
یعنی چه جوری برنامه ها تو لینوکس هم اجرا میشن؟

M.GhanaatPisheh
سه شنبه 09 اسفند 1384, 18:05 عصر
سلام
یعنی چه جوری برنامه ها تو لینوکس هم اجرا میشن؟

http://www.mono-project.com/Main_Page

niloufar
سه شنبه 09 اسفند 1384, 18:31 عصر
http://www.mono-project.com/Main_Page
سلام
میشه یه کم توضیح بدید...

ehsan_ansaripoor
سه شنبه 09 اسفند 1384, 20:03 عصر
سلام
یعنی چه جوری برنامه ها تو لینوکس هم اجرا میشن؟

دوست عزیز فکر نمی کنم در حال حاضر امکان این کار وجود داشته باشه چون اولا فایلهایی با پسوند EXE برنامه های اجرایی ویندوز هستند و در ثانی نسخه های لینوکس متعدده.

اگر هم این کار امکان داشته باشه باید از یک Convertor کمک بگیرید که در آدرسی که دوستمون معرفی کردند اشاره به نرم افزار Mono داره که این امکان را فراهم میکنه.

SYSMAN
سه شنبه 09 اسفند 1384, 20:07 عصر
CLR = Common Language Runtime
خوب حالا این دقیقا چی هست؟ زمانی که شما برنامه خودتان را با VS.NET می نویسید و کامپایل می کنید کدهای برنامه ای که نوشتید مستقیما تبدیل به کد ماشین نمی شه بلکه ماکروسافت یک راه حل در نظر گرفت، که ابتدا کد برنامه تبدیل به CLR می شه و سپس تبدیل به کد ماشین می شه. در واقع با این خصوصیت اگر پس فردا ماکروسافت بخواهد می تواند یک کامپایلر تولید کنه که برنامه ای که شما توی VS.NET نوشتید را توی Linux یا هر سیستم عامل دیگری اجرا کنید.

MSIL = Microsoft Intermediate Language
اما زمان کامپایل NET. کد شما را مستقیما به کد ماشین x86 تبدیل نمی کنه. (سیستم هایی که از چیپست اینتل یا سازگار با آن استفاده می کنند رو سیستم های x86 می گویند) بلکه کد نوشته شده تبدیل به یک زبان میانی (MSIL) می شه که علت این تبدیل قابل اجرا بودن برنامه های نوشته شده در VS.NET در کامپیوترهای دیگری مثل Apple هست. جاوا هم یک چیزی شبیه به MSIL داره که به آن کد بایت می گویند.

سایتی که معرفی شده در واقع بر روی تبدیل کد های نوشته شده در VS.NET بر روی سیستم عامل ها و کامپیوترهای دیگر کار می کنه. تا آنجایی که یادم هست یک شرکت هم یک کامپایلر ساخته که کد نوشته شده در C# .NET را به کدهای قابل اجرا در Linux بر می گردونه.

niloufar
چهارشنبه 10 اسفند 1384, 11:54 صبح
سلام
عالیه! از دوستان کسی اطلاعات بیشتری در مورد پروژه مونو داره؟ اینکه چه جوری میشه باهاش پروژه های دات نت رو برای لینوکس قابل اجرا کرد؟ اینکه آیا باید در خود پروژه هم کاری کرد؟ و ...

ممنون

mehranFX
چهارشنبه 10 اسفند 1384, 12:30 عصر
سلام
عالیه! از دوستان کسی اطلاعات بیشتری در مورد پروژه مونو داره؟ اینکه چه جوری میشه باهاش پروژه های دات نت رو برای لینوکس قابل اجرا کرد؟ اینکه آیا باید در خود پروژه هم کاری کرد؟ و ...

ممنون
پروژه مونو برداشتی آزاد از محیط دات نت وکلاس های تعبیه شده آن است ، به این دلیل که طراحان اون بدون دسترسی به ماهیت معماری و سورس دات نت محیطی رو برای اجرای کد های دات نت در لینوکس شبیه سازی کرده اند لذا این که کد شما در لینوکس به صورت 100% اجرا بشه غیر منطقی است ؛ لیکن این پروژه تلاشی برای نیل به این مقصود است.
جهت اطلاعات بیشتر به اینجا مراجعه کن:http://www.mono-project.com
خوش باشی!

niloufar
چهارشنبه 10 اسفند 1384, 13:02 عصر
پروژه مونو برداشتی آزاد از محیط دات نت وکلاس های تعبیه شده آن است ، به این دلیل که طراحان اون بدون دسترسی به ماهیت معماری و سورس دات نت محیطی رو برای اجرای کد های دات نت در لینوکس شبیه سازی کرده اند لذا این که کد شما در لینوکس به صورت 100% اجرا بشه غیر منطقی است ؛ لیکن این پروژه تلاشی برای نیل به این مقصود است.
جهت اطلاعات بیشتر به اینجا مراجعه کن:http://www.mono-project.com
خوش باشی!
سلام
ممنون

اما چه جوری میشه با همین تلاش یه پروژه دات نت رو قابل اجرا در لینوکس کرد (تو سایتش چیز درست و حسابی پیدا نکردم)

بازم ممنون

saghari
چهارشنبه 10 اسفند 1384, 13:23 عصر
با سلام
تا جایی که من اطلاع دارم در .net برنامه برای CLR ترجه میشه و حال اگه CLR نوشته شده برای سیستم عامل دیگری طراحی بشه شما دیگه نیازی به بازنویسی کد برنامه ندارید. البته این در صورتی صادقه که شما به روش Unmanage کد نویسی نکرده باشید.