Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как оптимизировать код чтобы читать Xml файл. / 10 сообщений из 10, страница 1 из 1
16.12.2014, 19:11
    #38835407
Dmitriy78781
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как оптимизировать код чтобы читать Xml файл.
Есть код для чтения Xml файлами сам файл нужно его оптимизировать.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
FileStream fs = new FileStream("D:\\TestXml\\TestXml\\rocid.xml",FileMode.Open,FileAccess.Read,FileShare.Read);
            XmlDocument XmlDoc = new XmlDocument();
            XmlDoc.Load(fs);
            ArrayList Country = new ArrayList();
            string temp = "";
            string temp1 = "";
            for (int i = 0; i < XmlDoc.DocumentElement.ChildNodes.Count; i++)
            {

                if (XmlDoc.DocumentElement.ChildNodes[i].Name.ToString() == "country")
                {
                    //temp1 = XmlDoc.DocumentElement.ChildNodes[i].InnerText;
                    
                }

                XmlDoc.DocumentElement.GetElementsByTagName("country")[i].InnerText;
            }
            
            fs.Close();



Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
<?xml version="1.0" encoding="windows-1251" ?>
<rocid>
  <!-- таблица  city -->
    <city>
        <city_id>4400</city_id>
        <country_id>3159</country_id>
        <region_id>4312</region_id>
        <name>Москва</name>
    </city>
    <city>
        <city_id>4313</city_id>
        <country_id>3159</country_id>
        <region_id>4312</region_id>
        <name>Абрамцево</name>
    </city>
    <city>
        <city_id>4314</city_id>
        <country_id>3159</country_id>
        <region_id>4312</region_id>
        <name>Алабино</name>
    </city>

<country>
        <country_id>3159</country_id>
        <city_id>0</city_id>
        <name>Россия</name>
    </country>
    <country>
        <country_id>4</country_id>
        <city_id>0</city_id>
        <name>Австралия</name>
    </country>
    <country>
        <country_id>63</country_id>
        <city_id>0</city_id>
        <name>Австрия</name>
    </country>
 <region>
        <region_id>11354</region_id>
        <country_id>11060</country_id>
        <city_id>0</city_id>
        <name>Ямагути</name>
    </region>
    <region>
        <region_id>11363</region_id>
        <country_id>11060</country_id>
        <city_id>0</city_id>
        <name>Яманаси</name>
    </region>
</rocid>
...
Рейтинг: 0 / 0
16.12.2014, 19:29
    #38835421
petalvik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как оптимизировать код чтобы читать Xml файл.
Dmitriy78781,

оптимизировать по какому параметру: читабельность (понятность), краткость кода, объём используемой памяти, скорость выполнения?
...
Рейтинг: 0 / 0
16.12.2014, 19:31
    #38835424
Dmitriy78781
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как оптимизировать код чтобы читать Xml файл.
По скорости выполнения.
...
Рейтинг: 0 / 0
16.12.2014, 19:36
    #38835429
Dmitriy78781
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как оптимизировать код чтобы читать Xml файл.
Мне нужно быстро вывести список стран в ListBox по этому нужно оптимизировать код.
...
Рейтинг: 0 / 0
16.12.2014, 20:25
    #38835468
petalvik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как оптимизировать код чтобы читать Xml файл.
Dmitriy78781По скорости выполнения.
Не использовать ArrayList. Использовать List<T>.

Не использовать XmlDocument. Если есть возможность, использовать LinqToXml - XDocument/XElement. Если такой возможности нет (старая версия фреймворка), тогда использовать XPathDocument + XPathNavigator, но это только в том случае, когда не нужно менять документ.

Не использовать GetElementsByTagName - работает медленно.
Следует либо итерироваться по коллекции узлов (как в данном коде), либо использовать свойства типа FirstChild, NextSibling.

Не следует использовать XPath - очень медленно.

И вообще, каков размер документа, что нужно оптимизировать работу с ним? Неужто миллионы записей?

Самый быстрый способ - использовать потоковый XmlReader.
...
Рейтинг: 0 / 0
16.12.2014, 20:42
    #38835481
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как оптимизировать код чтобы читать Xml файл.
Dmitriy78781,
так ли уж критична скорость выполнения с учетом передачи по сети, если используется очень часто кешируйте выборку
на худой конец при старте приложения парсить в кеш, имхо не отломится - подождут
...
Рейтинг: 0 / 0
16.12.2014, 22:18
    #38835547
Dmitriy78781
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как оптимизировать код чтобы читать Xml файл.
Я создаю сайт где для регистрации будет выбираться страна, область, город.
...
Рейтинг: 0 / 0
16.12.2014, 22:58
    #38835559
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как оптимизировать код чтобы читать Xml файл.
Самое быстрое чтение файлов - через XmlReader , быстрее прочитать не получится. Вот тут проводится тест чтения xml размером 1.4Gb, код отрабатывает моментально.
...
Рейтинг: 0 / 0
17.12.2014, 00:20
    #38835590
Calabonga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как оптимизировать код чтобы читать Xml файл.
Я бы использвал сериализацию, хотя правильнее сказать десериализацию XmlSerializer , который, кстати, использует XmlReader.
...
Рейтинг: 0 / 0
17.12.2014, 11:27
    #38835811
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как оптимизировать код чтобы читать Xml файл.
МСУСамое быстрое чтение файлов - через XmlReader , быстрее прочитать не получится. Вот тут проводится тест чтения xml размером 1.4Gb, код отрабатывает моментально.
На гигабайтных файлах работа в XmlReader/XmlWriter единственный возможный вариант.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как оптимизировать код чтобы читать Xml файл. / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]