چرا سرعت اجرای این برنامه اینقدر کم است؟
وقتی با فایل کامپایل شده هم کار میکنم انگار دارم با پنتیم وان کار میکنم با این که سیستم فعلی من LGA 2.8 است.
اگه راهی برای افزایش سرعت وجود داره لطف کنید بهم بگید.
چرا سرعت اجرای این برنامه اینقدر کم است؟
وقتی با فایل کامپایل شده هم کار میکنم انگار دارم با پنتیم وان کار میکنم با این که سیستم فعلی من LGA 2.8 است.
اگه راهی برای افزایش سرعت وجود داره لطف کنید بهم بگید.
سرعت برنامه به عوامل متعددی بستگی داره مثل:نوشته شده توسط Amir_Sharif
1-سایر پروسس های فعال و جاری
2-پیچیدگی عملیات آماده سازی یا حین اجرای برنامه خودمون
3-عدم کد نویسی بهینه
4- استفاده از دات نت بدلیل استفاده از JIT خود بخود برنامه ات رو از سایر برنامه های win32 کُند تر خواهد کرد.
5- اتصالات بانک اطلاعاتی .
6- بهینه نبودن کدهای فراهم کنند داده مثل کوئری و ...
من تابحال به این مشکل بر نخوردم. اما این رو هم قبول دارم که برنامه های نوشته شده در دات نت کمی سرعتشون کمتر از محیط های قبلیه.
سلام
مشکل رم ندارید. لااقل رم مورد نیاز برای خوب کار کردن (نه فقط کار کردن) 512 است
من زمان اجرا توی vb مشکلی ندارم. اما وقتی کامپایل میشه یه کم سرعتش پایین میاد
دوست عزیز بنده هم مثل شما و سایر دوستان از کندی برنامه های تحت Net. ناراحت و نگران بودم تا اینکه به این مساله پی بردم:
در محصولات Net. به دلیل Compile شدن برنامه به زبان Microsoft Interediate Language یا MSIL سرعت برنامه های اجرایی پایئنه.
دلیل این کندی این است که برنامه به محض اجرا کدهای MSIL را به زبان ماشین ترجمه می کند.
حالا دلیل اینکه چرا ماکروسافت از این Compiler استفاده کرده است این است که تبدیل کدهای MISL به زبان ماشین این قابلت را دارند که اگر روزی سیستم عامل دیگری مثل Linux جایگزین ویندوز شد MSIL به راحتی تبدیل به زبان ماشین تحت Linux شود و در واقع برنامه های نوشته شده تحت Net. چشم اندازی به سوی آینده دارند.
آخرین ویرایش به وسیله ehsan_ansaripoor : دوشنبه 08 اسفند 1384 در 23:43 عصر
سلامنوشته شده توسط ehsan_ansaripoor
یعنی چه جوری برنامه ها تو لینوکس هم اجرا میشن؟
http://www.mono-project.com/Main_Pageنوشته شده توسط niloufar
سلامنوشته شده توسط M.GhanaatPisheh
میشه یه کم توضیح بدید...
دوست عزیز فکر نمی کنم در حال حاضر امکان این کار وجود داشته باشه چون اولا فایلهایی با پسوند EXE برنامه های اجرایی ویندوز هستند و در ثانی نسخه های لینوکس متعدده.نوشته شده توسط niloufar
اگر هم این کار امکان داشته باشه باید از یک Convertor کمک بگیرید که در آدرسی که دوستمون معرفی کردند اشاره به نرم افزار Mono داره که این امکان را فراهم میکنه.
آخرین ویرایش به وسیله ehsan_ansaripoor : سه شنبه 09 اسفند 1384 در 20:06 عصر
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 بر می گردونه.
سلام
عالیه! از دوستان کسی اطلاعات بیشتری در مورد پروژه مونو داره؟ اینکه چه جوری میشه باهاش پروژه های دات نت رو برای لینوکس قابل اجرا کرد؟ اینکه آیا باید در خود پروژه هم کاری کرد؟ و ...
ممنون
پروژه مونو برداشتی آزاد از محیط دات نت وکلاس های تعبیه شده آن است ، به این دلیل که طراحان اون بدون دسترسی به ماهیت معماری و سورس دات نت محیطی رو برای اجرای کد های دات نت در لینوکس شبیه سازی کرده اند لذا این که کد شما در لینوکس به صورت 100% اجرا بشه غیر منطقی است ؛ لیکن این پروژه تلاشی برای نیل به این مقصود است.نوشته شده توسط niloufar
جهت اطلاعات بیشتر به اینجا مراجعه کن:http://www.mono-project.com
خوش باشی!
سلامنوشته شده توسط mehranFX
ممنون
اما چه جوری میشه با همین تلاش یه پروژه دات نت رو قابل اجرا در لینوکس کرد (تو سایتش چیز درست و حسابی پیدا نکردم)
بازم ممنون
با سلام
تا جایی که من اطلاع دارم در .net برنامه برای CLR ترجه میشه و حال اگه CLR نوشته شده برای سیستم عامل دیگری طراحی بشه شما دیگه نیازی به بازنویسی کد برنامه ندارید. البته این در صورتی صادقه که شما به روش Unmanage کد نویسی نکرده باشید.