ورود

View Full Version : سوال: openbasemovil یا floggy یا J2MEMicroDBJava dh یا rms



saeedsam7
چهارشنبه 31 تیر 1388, 16:13 عصر
سلام من میخوام یه برنامه دیتا بیس بنویسم . حجم دیتا ها ممکنه به 20mb ~50 mb برسه .
فقط سرعت برام مهمه از کدوم یکی از اینها استفاده کنم .
openbasemovil یا floggy یا J2MEMicroDBJava dh یا rms
لطفاً دلیل خودتونم بگین .
اگه کسی از یکی از اینها (غیر از rms) استفاده کرده هم نظرشو در موردش بگه .
ممنون.:قلب:

mic_r_c
چهارشنبه 31 تیر 1388, 22:57 عصر
سلام،
اگر سرعت مد نظرته هیچ کدوم.
RMS از همه بهتره، تازه اون ها هم از RMS استفاده میکنن.

اگر فقط سرعت برات مهمه از یک دیتا بیس تحت وب استفاده کن، باور کن سرعتش برای حجم 20 مگ بیشتر هم هست.
مخصوصا اگر بخوای جستجو هم داشته باشی.
از یک صفحه PHP ساده هم واسه ارتباط استفاده کن.

ولی اگر جستجو در کار نیست، خیلی با احتیاط از RMS استفاده کن. 20 مگ یه مقدار ممکنه رو بعضی از گوشی ها اذیت کنه.

راستی 20 مگ اطلاعات رو از کجا می خوای بیاری بریزی تو RMS اصلا برای ورود این حجم به صورت یکجا، همون بهتره که از GPRS یا بلوتوث استفاده کنی، حتی روی فایل هم حساب نکن، حتی اگر فایلات رو بشکنی. مگر اینکه از K800 یا گوشی هایی که فقط یه بار permission میگیرن استفاده کنی.

برنامه با 300 کیلو یکجا هنگ میکنه، خودکشی میکنه، سرش رو میزنه به دماغ کاربر.
20 مگ رو به جونش ننداز، رحم و مروت داشته باش. سازمان ملل چی میگه، مردم چی میگن. هوووو

به هر حال داری وارد کار شیرینی میشی.

نتیجه کارت رو Post کن.
موفق باشی.

saeedsam7
پنج شنبه 01 مرداد 1388, 11:47 صبح
ممنون جواب دادی
راستش تعداد رکورد ها به 500 میرسه
اما حجم هر رکورد 10~100 کیلو خواهد بود .
افلاین کارکردنش از سرعتش مهمتره :لبخند:
دیتابیس اول حدود 20mb خواهد بود . یعنی فایل jar 20mb.
به مرور بیشتر خواهد شد .

پس نظر شما rms هستش همچنان .
rms محدودیت واسه حجم نداره ؟

یه سئوال دیگه هم داشتم .
jvm موبایل 4mb رم از سیستم میگیره (اگه اشتباه نکنم ).
ایا میشه این رو تغییر داد ؟
یا مثلاً خود jvm موقعی که رم بیشتری لازم داره کاری میکنه ؟

من p1i دارم 128mb رم داره اونوقت بازم 4mb به jvm میده.

mic_r_c
جمعه 02 مرداد 1388, 09:24 صبح
سلام
مشکل همینجاست که JVM از رم زیاد فضا دریافت نمیکنه.

در ضمن حالا روی بعضی از گوشیها مثل سونی با 20 مگ حجم اولیه مشکلی نداری ولی روی گوشیهایی مثل نوکیا، موتورولا، ال جی، سامسونگ و حتی بعضی از سری های سونی، اصلا JVM فایل jar رو لود نمیکنه. حتی شاید اصلا نصبش نکنه.

اگر برنامت عمومیه، اون رو روی یک گوشی امتحان نکن و به امولاتور هم اطمینان نداشته باش.

به هر حال برنامه شما اگر 500 رکورد ثابت 100 کیلویی داره به نکات زیر توجه کن:

این 100 کیلو عکس نباشند، چون 100 کیلو عکس فشرده شده ، وقتی تو حافظه باز میشه :شیطان:
جستجو نداشته باشی.
لوده اولیه خیلی دردسر سازه، باید یه جوری online اش کنی. حداقل واسه لود اولیه.
وقتی داری داده های 100 کیلویی رو لود میکنی از کلاس هایی با حجم لود بال استفاده نکن. مثلا کلاس های فارسی نویس. یا حد اقل با احتیاط لود کن.

برای گوشی های نوکیا حجمی که لوده حافظه میکنی از 700 کیلو بیشتر نشه و اگر حجم اطلاعاتت بیشتر از 300 کیلویه از لیست یا Vector به جای آرایه یا String استفاده کن.
Vector ها ممکنه حجم بیشتری بگیرند اما به هم پیوند خورده اند و از حافظه بهینه تر استفاده میکنند.

اینا تجربه هایی بود که در پروژه های مشابه به دست آوردم.

موفق باشی

saeedsam7
شنبه 03 مرداد 1388, 11:32 صبح
ممنونم بابت راهنماییات .

("مشکل همینجاست که JVM از رم زیاد فضا دریافت نمیکنه.") راه حلی هست ؟

نه دیتا ها عکس نیست .
دقیقاً هم همشون یه اندازه نیستن .

چرا ("جستجو نداشته باشی") ؟ یعنی با id هم جستجو نکنم ؟

رو یه k310 ,p1i , n72 تست میکنم . کافیه ؟


("کیلویه از لیست یا Vector به جای آرایه یا String استفاده کن.
Vector ها ممکنه حجم بیشتری بگیرند اما به هم پیوند خورده اند و از حافظه بهینه تر استفاده میکنند.") میتونی یه لینک خوب واسه Vector بدی ؟

بازم ممنون که وقت گزاشتی و جواب دادی .

mic_r_c
شنبه 03 مرداد 1388, 23:18 عصر
سلام،
برای اینکه JVM فضای بیشتری بتونه اخذ کنه در Windows mobile 6.1 یک چیزایی هست :قهقهه:

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

ولی اگر منظورت از جستجو با ID شماره رکورده، اون که دیگه جستجو نیست واکشیه.

K310 یعنی میخوای واقعا با K310 تست کنی و برنامت شلنگ تخته بندازه، ها. واقعا بی رحمی. منم فردا یه برنامه برای میکروکنترلر مینویسم که Windows Vista رو 6 بار روی خودش نصب کنه و پاک کنه. :قهقهه:
نمیگم جواب نمیده ولی اگر به فکر k310 هستی باید برنامت رو خیلی Optimize کنی.

استفاده از vector ها مثل ArrayList ها در C# اِ

Vector vect1 = new Vector();
برای اضافه کردن مقدار:

vect1.append(object);
یا

vect1.addElement(object);

و برای خواندن مقدار هم:

vect1.elementAt(Index);

چیزه خاصی نیست.


اگر برنامه تبلیغاتیه، به فکر سنگین کردن و آنلاینی کردنش نباش.
اگر برنامه تخصصیه، به جان خودم همه مردم ایرانسل و ول دارن. GPRS هم اونقدر را هزینه ای نداره.
بابا حد اقل از بلوتوث استفاده کن.
ولی در هر حال یادت باشه که کلا برنامه موبایل اون هم با JAVA، حالا windows mobile و Iphone و Black Berry فرق میکنن، رو نباید خیلی سنگین طراحی کنی. یک سرور قدرت مند و یک کلاینت معمولی.:چشمک:

saeedsam7
یک شنبه 04 مرداد 1388, 10:16 صبح
سلام،
برای اینکه JVM فضای بیشتری بتونه اخذ کنه در Windows mobile 6.1 یک چیزایی هست :قهقهه:

ایول


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

مرسی



K310 یعنی میخوای واقعا با K310 تست کنی و برنامت شلنگ تخته بندازه، ها. واقعا بی رحمی. منم فردا یه برنامه برای میکروکنترلر مینویسم که Windows Vista رو 6 بار روی خودش نصب کنه و پاک کنه. :قهقهه:
نمیگم جواب نمیده ولی اگر به فکر k310 هستی باید برنامت رو خیلی Optimize کنی.

برام خیلی خیلی مهمه که همه از برنامه بتونن استفاده کنن .
اونقدری که به خاطرش opengl:قلب: رو واسه برنامم گزاشتم کنار


استفاده از vector ها مثل ArrayList ها در C# اِ

Vector vect1 = new Vector();
برای اضافه کردن مقدار:

vect1.append(object);
یا

vect1.addElement(object);

و برای خواندن مقدار هم:

vect1.elementAt(Index);

چیزه خاصی نیست.

امتحان میکنم ببینم کدوم بهتر جواب میده .
به نظر خودم arraylist کلی فضای اضافی اشغال میکنه .


اگر برنامه تبلیغاتیه، به فکر سنگین کردن و آنلاینی کردنش نباش.
اگر برنامه تخصصیه، به جان خودم همه مردم ایرانسل و ول دارن. GPRS هم اونقدر را هزینه ای نداره.
بابا حد اقل از بلوتوث استفاده کن.
ولی در هر حال یادت باشه که کلا برنامه موبایل اون هم با JAVA، حالا windows mobile و Iphone و Black Berry فرق میکنن، رو نباید خیلی سنگین طراحی کنی. یک سرور قدرت مند و یک کلاینت معمولی.:چشمک:
این تیکه رو جواب نمیدم تا خروجی مونو ببینی :شیطان:

خیلی لطف کردی