Форум программистов, компьютерный форум CyberForum.ru

Objective-C

Войти
Регистрация
Восстановить пароль
 
synchuk2010
0 / 0 / 0
Регистрация: 11.06.2015
Сообщений: 9
#1

Как оптимизировать код objective-c? - Objective-C

09.02.2016, 10:00. Просмотров 473. Ответов 3
Метки нет (Все метки)

Проблема заключается в том, что моё приложение жрёт много оперативной памяти (300 мб). На 4s приложение вылетает, на остальных - виснет. В приложении много картинок и таблиц с картинками. Мне нужно снизить нагрузку на оперативную память, как-то иначе грузить картинки с сервера. Пишите если нужен мой говнокод)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2016, 10:00     Как оптимизировать код objective-c?
Посмотрите здесь:

Рисование в Objective-C Objective-C
Objective-C Консультации по objective-c
Objective-C Перевод в Objective C
Objective-C Как писать такую простую модель на Objective C?
SystemWait в Objective C Objective-C
Наследование в Objective C Objective-C
Objective-C Строки в Objective-C
Objective-C Полиморфизм в Objective-C
Перцептрон на objective c Objective-C
Как подружить Qt и Objective-C Objective-C
Литература C++ и Objective-C Objective-C
Objective-C Objective-C A to Z Started

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vorona
Peace 2 all shining faces
666 / 528 / 45
Регистрация: 05.03.2010
Сообщений: 1,271
09.02.2016, 18:47     Как оптимизировать код objective-c? #2
открывать instruments, смотреть или есть утечки памяти, смотреть, что именно жрет память и там уже оптимизировать
synchuk2010
0 / 0 / 0
Регистрация: 11.06.2015
Сообщений: 9
10.02.2016, 11:35  [ТС]     Как оптимизировать код objective-c? #3
Нашол проблему в VM: ImageIO_GIF_Data і VM: CoreAnimation. Как мне это исправить? И ещё я не могу винести загрузку в метод viewDidLoad. Вот код из ячейки таблицы:
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
NSString *filePath1 = [NSString stringWithFormat:@"%@",responsePhotos[0]];
NSURL *imgurl=[NSURL URLWithString:filePath1];
dispatch_queue_t queue =     dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
dispatch_async(queue, ^{
   NSData *dataimage1 = [NSData dataWithContentsOfURL:imgurl];
   UIImage *imim1 = [UIImage imageWithData:dataimage1];
    dispatch_async(dispatch_get_main_queue(), ^{
        if (imim1==nil) {
            cell.imgauto1.image=[UIImage imageNamed:@"camera_a.gif"];
        }else{
            cell.imgauto1.image=imim1;
        }
    });
});
glvrzzz
95 / 71 / 12
Регистрация: 12.12.2012
Сообщений: 214
11.02.2016, 09:53     Как оптимизировать код objective-c? #4
Вижу 2 проблемы с вашим кодом:

1. не относится к памяти, тем не менее у вас картинка грузится асинхронно и если подгрузка будет достаточно долгой, есть вероятность, что селл переиспользуется до того, как она закончится, и в селл выставится не та картинка
2. https://developer.apple.com/library/...ionQueues.html
If your block creates more than a few Objective-C objects, you might want to enclose parts of your block’s code in an @autorelease block to handle the memory management for those objects. Although GCD dispatch queues have their own autorelease pools, they make no guarantees as to when those pools are drained. If your application is memory constrained, creating your own autorelease pool allows you to free up the memory for autoreleased objects at more regular intervals.
Попробуйте обернуть в autorelease pool:
Objective-C
1
2
3
4
5
6
7
8
9
10
11
@autoreleasepool { 
    NSData *dataimage1 = [NSData dataWithContentsOfURL:imgurl];
    UIImage *imim1 = [UIImage imageWithData:dataimage1];
    dispatch_async(dispatch_get_main_queue(), ^{
        if (imim1==nil) {
            cell.imgauto1.image=[UIImage imageNamed:@"camera_a.gif"];
        }else{
            cell.imgauto1.image=imim1;
        }
    });
}
Yandex
Объявления
11.02.2016, 09:53     Как оптимизировать код objective-c?
Ответ Создать тему
Опции темы

Текущее время: 04:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru