انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
میزان درگیر شدن پردازنده (برنامه نویسی اندروید)

میزان درگیر شدن پردازنده (برنامه نویسی اندروید)

#1
سلام خسته نباشید دوستان یه سوال داشتم
یک دیتابیس دارم با 4000 رکورد

حالا سوالم اگر توسط کوئری یک مقداره مشخص از دیتابیس مثلا id=20 بخونم پردازنده بیشتر درگیر میکنه؟

یا اینکه انجام دو عمل خواندن و نوشتن از متغییر list که شامل 4000 عنصر است؟
عمل خواندن از اندیس =20 و عمل نوشتن در همین عنصر


کدام مورد پردازنده بیشتر درگیر میکنه؟
پاسخ

میزان درگیر شدن پردازنده (برنامه نویسی اندروید)

#2
سلام.
این طور که متوجه شدم، منظورتان این است که مثلا برای نمایش اطلاعات در یک ListView ، می توان به دو روش زیر عمل کرد :

1- خواندن یک ردیف از جدول (id=20) همزمان با ساخت یک item از ListView ، یعنی ابتدا یک item ساخته می شود (با یک query که تنها یک ردیف از جدول را برمی گرداند) و بعد برای ساخت item بعدی، دوباره query می نویسیم و id=21 را می خوانیم و ... (تا هر 4000 ردیف از جدول را نمایش بدهیم) (در این نوع کدنویسی، فراخوانی اطلاعات از جدول، در Adapter مربوط به ListView که برای ساخت item ها به کار می رود، صورت می گیرد)
2- ابتدا هر 4000 ردیف از جدول خوانده شود (با یک query و قبل از شروع کدنویسی ListView) و سپس مقدار آنها را در یک آرایه ذخیره کنیم و آنگاه شروع به ساخت item های ListView بر اساس مقادیر آن آرایه کنیم.

به نظر بنده، روش اول بهتر است، زیرا در روش دوم، ما قبل از ساخت ListView ، یک وقفه بزرگ خواهیم داشت تا اطلاعات از جدول پایگاه داده خوانده شود (کاربر باید منتظر بماند). اما در روش اول، اطلاعات به مرور به کاربر نمایش داده می شود و تا اولین item ها را بخواند، بقیه نیز نمایش داده می شوند (تنها item های که در صفحه نمایش دیده می شوند، ساخته خواهند شد، نه هر 4000 تا).
همچنین در روش دوم، چون همه اطلاعات فراخوانی می شود، به RAM بیشتری نیاز است (وقتی حجم اطلاعات زیاد است، بهتر است که در پایگاه داده باشد و آن را به صورت بخش بخش از پایگاه داده فراخوانی کنیم).

اگر در نمایش ListView با کندی و یا کمبودهای مربوط به سخت افزار روبرو شدید، می توانید RecyclerView را نیز امتحان کنید (RecyclerView همان ListView پیشرفته تر می باشد)، البته ابتدا سعی کنید که بهترین روش کدنویسی برای ساخت item ها را بیابید.

Flower
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط aleas

میزان درگیر شدن پردازنده (برنامه نویسی اندروید)

#3
اگه منظور شما دسترسي و درگير شدن منابع برنامه بعد از لود كامل اطلاعات در listview هستش
كه قطعا دسترسي به ردیف هاي listview سريعتر و ميزان منابع كمتري رو استفاده ميكنه و در اصطلاع فني هزينه كمتري رو براي شما داره.

چون در دسترسي به اطلاعات پايگاه داده شما بايد اعمال I/O رو انجام بديد يا همون خوندن و نوشتن
كه اين عمل منابع زيادي از دستگاه رو درگير ميكنه و زمان بيشتري ميبره
پاسخ
 سپاس شده توسط شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان