Форум программистов, компьютерный форум, киберфорум
Наши страницы
Objective-C
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
synchuk2010
0 / 0 / 0
Регистрация: 11.06.2015
Сообщений: 9
#1

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

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

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

Как лучше написать код Objective-C
Создать класс «Фрукт» 1. Определить у этого класса свойства 2....

Как выучить Objective-C?
подскажите хорошую литературу, что бы можно было выучить язык, и самое главное...

Как подружить Qt и Objective-C
Доброе время суток, уважаемые форумчане Возник вопрос, который уже с месяц...

Как писать такую простую модель на Objective C?
задача простая: есть типа супермаркет, он же Main... и есть классы касса,...

Как в objective-c сделать кнопку вначале неактивной а затем активной
Я понимаю что это азы, но тем не менее помогите советом - мне нужно сделать...

3
Vorona
Peace 2 all shining faces
672 / 534 / 84
Регистрация: 05.03.2010
Сообщений: 1,283
09.02.2016, 18:47 #2
открывать instruments, смотреть или есть утечки памяти, смотреть, что именно жрет память и там уже оптимизировать
0
synchuk2010
0 / 0 / 0
Регистрация: 11.06.2015
Сообщений: 9
10.02.2016, 11:35  [ТС] #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;
        }
    });
});
0
glvrzzz
95 / 71 / 12
Регистрация: 12.12.2012
Сообщений: 214
11.02.2016, 09:53 #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;
        }
    });
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.02.2016, 09:53

Как в Objective-C изменить стандартный переход в Storyboard из одной сцены к другой
В моем проекте пока стоит стандартный переход от сцены к сцене при push. А...

Как в objective-c сделать переход к следующему действию нажатием любой точки на экране?
для перехода к следующему событию мне необходимо нажать кнопку, а я хочу чтобы...

Objective C
Доброго времени суток. Знаю что тема уже стара так же как задница Аллы...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru