Добрый день (я нуб, на всякий случай дублирую, кто теги не смотрит).
Я навелосипедил код, который как мне кажется медленный, что пипец.
Хотя я могу заблуждаться и все сделал ок.
Есть некоторая асинхронная функция, которая тянет данные из файла xml, сам файл на удаленном сервере
Далее псевдокод
class MyClass1 {
String name;
String field2;
String field3;
String field4;
String field5;
String field6;
String field7;
String field8;
}
class MyClass2 {
String field1;
String field2;
String field3;
String field4;
String field5;
String field6;
String field7;
String field8;
String field9;
String field10;
}
func Map<String, List<MyClass2>> fetchData(List<MyClass1> myClass1) {
Map<String, List<MyClass2>> fetchedDataMapList;
for (elemFromMyclass1 in myClass1) {
url = 'someUrl/${elemFromMyclass1.name}';
responseBody = http.get(url);
xmlData = responseBody.getDataFromXml;
list<MyClass2> myClass2List;
xmlData.forEach((elem) {
myClass2List.add(
field1 = elem.1;
field2 = elem.2;
field3 = elem.3;
field4 = elem.4;
field5 = elem.5;
field6 = elem.6;
field7 = elem.7;
field8 = elem.8;
field9 = elem.9;
field10 = elem.10;
);
});
fetchedDataMapList.addKeyValue(elemFromMyclass1.name, myClass2List);
}
return fetchedDataMapList;
}
Как можно оптимизировать функцию fetchData, чтобы она была чутка побыстрее?
PS. Прошу без срачей и без советов в духе - «бери мой user_lang и все сделаешь в 2 строчки с супер скоростью»
UPD. Пока читал комментарии других людей, осознал, что мне такая сложная структура данных не нужна, все можно сделать намного проще и получать необходимые данные по запросу из списка. Будет быстрее и эффективней, а также не будет расходоваться память на хранения всех данных.
Не знаю насчет правильности решения, но мне подходит.