پیشرفت ساخت آپادانا 2

+Mohammad+

Well-Known Member
سلام جاوید
آفرین ... با وجود مشکلاتی که داری خیلی خوبه که برای آپادانا هم وقت میزاری ... امیدوارم ادامه پیدا کنه...
میشه بگی چه قسمت هایی هنوز مونده ؟
 

JavidX

Apadana Developer
سلام به دوستان
تعطیلات من شروع شد و از الان بیشتر می تونم روی برنامه کار کنم. دارم سعی می کنم کارها رو به طور موازی انجام بدم. مثلاً الان اولین قسمت های sdk رو برای vc++ نوشتم. پلاگین ها می تونن با هر زبانی که کامپایلر dll داشته باشه نوشته بشن. خود برنامه یونیکد هست ولی پلاگین های غیر یونیکد رو هم ساپورت می کنه فقط کافیه که توسط برنامه نویس پلاگین یونیکد بودن یا نبودن مشخص بشه. یه کم دیگه روی sdk کار می کنم و میرم به خود دیزاینر برسم!
موفق و پیروز باشید
 

+Mohammad+

Well-Known Member
سلام به دوستان
تعطیلات من شروع شد و از الان بیشتر می تونم روی برنامه کار کنم. دارم سعی می کنم کارها رو به طور موازی انجام بدم. مثلاً الان اولین قسمت های sdk رو برای vc++ نوشتم. پلاگین ها می تونن با هر زبانی که کامپایلر dll داشته باشه نوشته بشن. خود برنامه یونیکد هست ولی پلاگین های غیر یونیکد رو هم ساپورت می کنه فقط کافیه که توسط برنامه نویس پلاگین یونیکد بودن یا نبودن مشخص بشه. یه کم دیگه روی sdk کار می کنم و میرم به خود دیزاینر برسم!
موفق و پیروز باشید
سلام جاوید جان ... خسته نباشی برادر ... ایشالا که امتحاناتت رو خوب داده باشی و تا آخر تعطیلات یه بخش زیادی از آپادانا پیشرفت بکنه ...
منم فردا 22 خرداد امتحاناتم تموم میشه .. بیشتر اینجا سر میزنم ...
راستی مگه دیزاینر تموم نشد ؟
موفق باشی ، یا علی
:rose:
 

JavidX

Apadana Developer
سلام جاوید جان ... خسته نباشی برادر ... ایشالا که امتحاناتت رو خوب داده باشی و تا آخر تعطیلات یه بخش زیادی از آپادانا پیشرفت بکنه ...
منم فردا 22 خرداد امتحاناتم تموم میشه .. بیشتر اینجا سر میزنم ...
راستی مگه دیزاینر تموم نشد ؟
موفق باشی ، یا علی
:rose:

سلام سلامت باشی عزیز
امیدوارم امتحاناتت رو خوب بدی.
نه تموم نشد اتفاقا خیلی دیگش مونده، با این که خیلی چیزهاش هم درست شده.

موفق و پیروز باشید
 

+Mohammad+

Well-Known Member
جاوید جان حالا که وقت آزاد بیشتری داری یه سری اسکرین شات هم بزار کیف کنیم ... :soot:
 

JavidX

Apadana Developer
با سلام به دوستان عزیز

با توجه به این که قبلا هم گفتم می خوام کارها رو همزمان انجام بدم، پلیر رو به امید خدا شروع کردم. اولین قسمتی که دارم روش کار می کنم قسمت اصلی اجرای اسکریپته.

موفق و پیروز باشید
 

JavidX

Apadana Developer
قسمت های اصلی مدیریت حافظه ی برنامه نوشته شد. در مورد حافظه و مدیریت حافظه چیزای زیاد و جدیدی برای ارائه به کاربران عزیز داریم.
سیستمی که روی این ورژن پیاده کردم انصافا اصلا قابل مقایسه با ورژن 1 نیست. خیلی جزئیات توش رعایت شده و خیلی قسمت ها که توی ورژن 1 فقط با یه تابع ساده پیاده سازی شده بودن، اینجا کلاسهایی با کلی مخلفات هستند.

موفق و پیروز باشید
 

JavidX

Apadana Developer
سلام به دوستان عزیز

چند روزیه که روی Expression ها و انواع متغیرهای حافظه کار میکنم. تا اینجا متغیرهای عددی کامل شدند. متغیرهای عددی حافظه رو متناسب با عدد داخلشون اختصاص می دن که حافظه ی اضافی اشغال نشه. مورد بعدی متغیرهای بولین و بعد هم رشته ها هستن.
بعد از این 2 تا قسمت متغیر رو رها می کنم و سراغ قسمت های دیگه میرم و در آینده به مرور قسمت متغیر ها رو کاملتر می کنم.

موفق و پیروز باشید
 

JavidX

Apadana Developer
سلام مجدد

سه نوع متغیر مذکور کامل شدند و الان دارم پردازش Expression ها رو ادامه میدم. اگه یادتون باشه آ1 یه مشکلاتی توی فهمیدن Expression ها داشت که البته به ندرت پیش میومد ولی من یادمه خیلی وقت پیش خودم بهش برخورد کردم که اشتباه پاسخ داد. این متدی که این سری دارم می نویسم خطا تو کارش نیست خیلی کدها منظمه و الگوریتم تو ذهنم مشخصه.

پیروز باشید
 

JavidX

Apadana Developer
از شب تا الان که نزدیکای 6 صبحه داشتم روی Expression ها کار میکردم و به جاهای خیلی خوبی رسیدم. الان Expression رو به خوبی میفهمه و مونده کار با متغیرها و ... و دادن نتیجه ی پردازش اکسپرشن.
 

JavidX

Apadana Developer
سلام به دوستان عزیز
خبر خوب! کار با مقادیر و Expression ها تقریباً تموم شد. الان می تونه با مقادیر ثابت محاسبات رو انجام بده؛ فقط مونده ارتباطشون با متغیرها و پیاده سازی توابع که میشه نتیجه گرفت که کارهای سختش انجام شده و کارهای ساده تر موندن.

توی تستی که روی یک عبارت ریاضی (شامل همه ی حالات مختلف) به طول حدود 39000 کاراکتر انجام دادم، آپادانا 1 سریع به جواب رسید (حدود نیم ثانیه) اما آپادانا 2 تو یه چشم به هم زدن جواب رو تحویل داد! به طور دقیق تر بخوام بگم توی آپادانا 2 ، این عبارت 39000 کاراکتری توی 0.016 ثانیه به جواب رسید!!

حالا میخوام یه مثال از تبدیل انواع مختلف به هم براتون بزنم:
کد:
123 & 51 + 3 & 2
پاسخ: 123542

دلیلش هم اینه که اولویت عملیات های ریاضی بیشتر از اولویت & (الحاق رشته) هست.

موفق و پیروز باشید
 

JavidX

Apadana Developer
مقدمات و بستر اجرای توابع فراهم شد و اولین تابع از پکیج Math به نام Random پیاده شد و به خوبی هم جواب داد! کاری که می خوام انجام بدم الان اینه که سراغ سایر بخش های کدنویسی مثل If و ... برم.
 

JavidX

Apadana Developer
الان که قسمت Expression ها ساخته شد با خودم گفتم چه خوبه که الان سرعت برنامه ها رو با هم مقایسه کنیم تا بتونم پردازش اعداد آ2 رو بهینه تر کنم.

یه تست خیلی ساده به این ترتیب که یه حلقه 1 میلیون عددی که داخلش یک متغیر رو 5 واحد زیاد می کرد، بین چند تا مفسر ترتیب دادم. نتایج زمان اجرا روی سیستم من به این شکل بود:
کد:
Java ~ 1ms
PHP ~ 150ms
Apadana Studio 2 ~ 1.1 sec
MMB ~ 14sec
Apadana 1 ~ 27sec
* نتایج برای آپادانا 1 و MMB به صورت دستی و بدون دخالت کامپیوتر محاسبه شده. (به دلیل طولانی بودن زمان)
این نتایج برام خیلی جالب و شگفت انگیز بود. همونطور که می بینید آپادانا 2 نسبت به ورژن 1 پیشرفت چشم گیری داشته و نسبت به MMB هم خیلی سریعتره. به جاوا فکر نمیکردم چون هر چی باشه طبیعیه که زبانی مثل php که تعریف نوع نداره و Casting ها رو اتوماتیک انجام میده سرعتش از جاوا کمتر باشه؛ اما توی این فکر بودم که چرا آ2 با این همه روشهایی که روش پیاده کردم از php کندتره.
این شد که اومدم ریشه یابی کردم و دیدم این کم بودن سرعت نسبت به php به خاطر روش ذخیره سازی متغیرهاست. با اینکه روش خوبیه ولی بازم کنده. ذخیره سازی رو حذف کردم دیدم زمان پردازش به حدود 300 میلی ثانیه رسید!! ولی باز هم دو برابر زمان php بود.
کدها رو بیشتر بررسی کردم و یه ایراد عجیب قریب دیدم که فراموش کرده بودم توی یه قسمت مهم روش کارم رو تغییر بدم. روش رو که تغییر دادم زمان محاسبه به 170 میلی ثانیه رسید که تقریبا با php برابره (چون php هم نوسان زمان زیاد داشت و 180 هم میشد). خوشحال شدم اما برای سریعتر کردن ذخیره سازی متغیرها باید بیشتر تلاش کنم برای همین ادامه ی کار رو واگذار کردم برای فردا که روی سرعت تفسیر و خود تفسیر بیشتر کار کنم. کد ذخیره رو که برگردوندم زمان محاسبه زیر 1 ثانیه شده بود (حدود 900 میلی ثانیه) که با همه ی این که می تونه بهتر بشه باز هم ناراضی نیستم چون این مقایسه حداقل به حال سرعت یه سودی داشت!

موفق و پیروز باشید
 
آخرین ویرایش:

NicSoft

Active Member
سلام و خسته نباشید
فکر میکنید چقدر دیگه کار داره؟(زمانش منظورم)
 

JavidX

Apadana Developer
سلام و خسته نباشید
فکر میکنید چقدر دیگه کار داره؟(زمانش منظورم)
قبلاً هم گفتم! با اینکه سخت روش کار می کنیم بازم خیلی دیگه مونده. با همین روند پیش بریم به زور تا آخر تابستون آماده میشه.

تا چند دقیقه پیش داشتم روی مفسر کار می کردم و الان هم رفتم سراغ if
 

جدیدترین ارسال ها

بالا