0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 45
1

Работа с большими массивами

28.07.2017, 10:12. Показов 2573. Ответов 22
Метки нет (Все метки)

Бодрого дня.
Есть ли какие секреты работы с большими массивами?
Есть файл с 1.500.000 строк
1) Убрать одинаковые строки.
Загружаю все в массив и колбашу... около 3-5 часов
VB.NET
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
Module Module1
 
    Sub Main()
        Dim Txt() As String
        Dim objRead As System.IO.StreamReader
        Dim objWrite As System.IO.StreamWriter
        Dim I As Integer, J As Integer, N, maxi As Integer
        'Чтение содержимого файла в массив
 
 
 
        objRead = System.IO.File.OpenText("D:\info6.txt")
        ' Здесь используем старую версию Split'а т.к. вбнетовский Strings.Split(vbCrLf) криво работает.
        Txt = Split(objRead.ReadToEnd, vbCrLf)
        objRead.Close()
        'Обработка массива
        I = 0
        maxi = Txt.GetUpperBound(0)
        Do While I < Txt.GetUpperBound(0)
            For J = Txt.GetUpperBound(0) To I + 1 Step -1
                'Исключаем одинаковые строки и подтягиваем хвост массива
                If Txt(I) = Txt(J) Or Txt(J) = "" Then
                    For N = J To Txt.GetUpperBound(0) - 1
                        Txt(N) = Txt(N + 1)
                    Next N
                    ReDim Preserve Txt(N - 1)
                End If
            Next J
            I = I + 1
        Loop
 
        If Txt(Txt.GetUpperBound(0)) = "" Then
            ReDim Preserve Txt(Txt.GetUpperBound(0) - 1)
        End If
        'запись содержимое массива в файл
        objWrite = System.IO.File.CreateText("D:\info6.txt")
 
        For I = 0 To Txt.GetUpperBound(0) - 1
            objWrite.WriteLine(Txt(I), vbCr)
        Next I
        objWrite.WriteLine(Txt(Txt.GetUpperBound(0)))
        objWrite.Close()
        Console.WriteLine("Колличество дубликатов " & (maxi - Txt.GetUpperBound(0)))
        Console.ReadLine()
        End
    End Sub
 
End Module
Может есть более быстрые способы и я отстал от жизни?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.07.2017, 10:12
Ответы с готовыми решениями:

Работа с большими массивами
Есть задача: получение санитарной зоны вокруг антенн, связи с особенностью решения задачи иного...

Работа с большими массивами данных в текстовом файле
Доброго времени суток. Уважаемые формучане на работе вознила следующая задача которую надо решить в...

Ошибки с большими массивами
Нужно заполнить массив ссылками на пиксели. Если между try и except отнять 2 вместо 1 массив...

Проблема с большими массивами
Добрый день. Есть проблема с большими массивами, помогите пожалуйста. Камень stm32f051k8t6 8кб...

22
Эксперт .NET
10234 / 7337 / 1156
Регистрация: 21.01.2016
Сообщений: 27,788
28.07.2017, 10:16 2
gizmo_zx, посмотрите в сторону HashSet<string>
1
es geht mir gut
11263 / 4744 / 1183
Регистрация: 27.07.2011
Сообщений: 11,437
28.07.2017, 12:38 3
Цитата Сообщение от gizmo_zx Посмотреть сообщение
Есть файл с 1.500.000 строк
10 секунд.
0
4173 / 3332 / 806
Регистрация: 02.02.2013
Сообщений: 3,212
Записей в блоге: 2
28.07.2017, 13:21 4
Почему бы не использовать традиционный подход.
VB.NET
1
2
3
4
Dim ss() As String = IO.File.ReadAllLines("test_1.txt")
Dim ss2 = ss.Distinct()
Label1.Text = ss.Length & vbCrLf & ss2.Count
IO.File.WriteAllLines("test_2.txt", ss2)
Данный код достаточно быстро обработал файл test_1.txt размер 20 Мб, число записей 2120136. Правда, записи достаточно короткие, следующего вида
8880 ELK
6870 PIL
790 YKO
4837 JVX
530 RLF
2362 PKJ
Еще интересен, на мой взгляд, подход с использованием класса MemoryMappedFile. Ну это наверное если файлы очень большие.
1
es geht mir gut
11263 / 4744 / 1183
Регистрация: 27.07.2011
Сообщений: 11,437
28.07.2017, 14:19 5
На старом добром словаре.
Исходный файл 105 мегабайт, 4 одинаковых книги 52 части "Звездных войн"
Всего строк - 1.810.502
Обрабатывалось 68 секунд.

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    Sub Main()
 
        Dim s1 As String() = IO.File.ReadAllLines("C:\tmp\11.txt", System.Text.Encoding.Default) '
        Dim dic As Object = CreateObject("Scripting.Dictionary")
        Dim i, k, n As Integer, t As Date = Now
        Dim s2(s1.Length - 1) As String
        For i = 0 To s1.Length - 1
            If Not dic.Exists(s1(i)) Then dic.Add(s1(i), i) : s2(n) = s1(i) : n += 1 Else k += 1
        Next
        ReDim Preserve s2(n - 1)
 
 
        IO.File.WriteAllLines(("C:\tmp\22.txt"), s2, System.Text.Encoding.Default)
        Console.WriteLine("Колличество строк в исходном файле: " & s1.Length)
        Console.WriteLine("Колличество строк в конечном файле: " & s2.Length)
        Console.WriteLine("Колличество дубликатов: " & k)
        Console.WriteLine("Затрачено на обработку(сек.): " & DateDiff("s", t, Now))
        Console.ReadLine()
    End Sub
Миниатюры
Работа с большими массивами  
2
307 / 248 / 40
Регистрация: 28.09.2013
Сообщений: 600
01.08.2017, 00:26 6
Цитата Сообщение от gizmo_zx Посмотреть сообщение
Может есть более быстрые способы и я отстал от жизни?
Если проц многоядерный, то есть еще параллельные циклы.
0
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 45
01.08.2017, 13:32  [ТС] 7
Всем бодрого дня.
Немного продолжу тему.
Исходный файл вида:
"29733510,13,33,56,63,75,3,29,45,67,90,1,24,31,52, 76,4,21,42,60,71,11,30,57,66,85,7,16,23,37"
Строк 500к.
Файл запихиваю в "Scripting.Dictionary"
Надо посчитать количество комбинаций из 4 цифр.

т.е. четыре вложенных FOR от 1 до 99
и вложенный перебор всего Dictionary.
дальше разбирать каждый элемент Dictionary.
Может это тоже можно ускорить?
0
Эксперт .NET
10234 / 7337 / 1156
Регистрация: 21.01.2016
Сообщений: 27,788
01.08.2017, 13:43 8
gizmo_zx, как-то мутно вы задачу поставили. Можно "на пальцах", а то непонятно ничего?
0
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 45
01.08.2017, 15:24  [ТС] 9
Исходный файл вида:
"29733510,13,33,56,63,75,3,29,45,67,90,1,24,31,52, 76,4,21,42,60,71,11,30,57,66,85,7,16,23,37"
Строк 500к.
Найти количество вхождений по всему файлу Q,X,Y,Z (от 1- до 99 каждая переменная)
0
es geht mir gut
11263 / 4744 / 1183
Регистрация: 27.07.2011
Сообщений: 11,437
01.08.2017, 15:50 10
Цитата Сообщение от gizmo_zx Посмотреть сообщение
Найти количество вхождений по всему файлу Q,X,Y,Z (от 1- до 99 каждая переменная)
То есть, от 1111 до 99999999 ? Тогда зачем 4 вложенных цикла?
0
Эксперт .NET
10234 / 7337 / 1156
Регистрация: 21.01.2016
Сообщений: 27,788
01.08.2017, 16:52 11
gizmo_zx, т.е. у вас на руках есть четыре переменные, каждая имеет значение из диапазона [1...99] вам нужно подсчитать количество вхождений для каждой в отдельности?
0
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 45
02.08.2017, 07:21  [ТС] 12
Я ищу комбинации 1,2,3,4 до 96,97,98,99 во всем файле.
Перебираю циклами:
1,2,3,4
1,2,3,5
...
1,2,3,99
1,2,4,5
1,2,4,6

Добавлено через 16 секунд
Я ищу комбинации 1,2,3,4 до 96,97,98,99 во всем файле.
Перебираю циклами:
1,2,3,4
1,2,3,5
...
1,2,3,99
1,2,4,5
1,2,4,6
0
Эксперт .NET
10234 / 7337 / 1156
Регистрация: 21.01.2016
Сообщений: 27,788
02.08.2017, 07:29 13
gizmo_zx, кажется понял. Может быть вам тут поможет "суффиксный массив".

Идея проста: отсортировать содержимое файла (точнее внутреннее, программное представление этого файла) по убыванию, начиная с конца. Осуществить бинарный поиск (или его вариант) нужных комбинаций в полученном отсортированном массиве.
0
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 45
22.08.2017, 09:16  [ТС] 14
Бодрого дня.
Помогите ускорить программку.
В двух словах:
читаю данные из "d:\info6_upd34.txt" в словарь "dic" (примерно 100.000 строк)
Пока оставил заполнение словаря в "ручную" из str_save.
Четырьмя вложенными циклами перебираю i1 - i4
Перебираю словарь dic - получаю строку
Преобразую строку в массив.
Перебираю массив и ищу наличие i1,i2,i3,i4.
По окончанию данных в словаре "dic" сохраняю результат в файл.
Следующий цикл по i4.

Сейчас отключил i1,i2 поиск идет 37 секунд в всего в двух строках
Ожидаемое время выполнения 90*90*37*100.000 = очень долго , я точно состарюсь.
Как можно ускорить это хозяйство.



VB.NET
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
Sub Main()
 
        Dim sfile1 As String
        sfile1 = "d:\info6_upd34.txt"
       
        Dim s1 As String() = IO.File.ReadAllLines(sfile1, System.Text.Encoding.Default) '
 
        'Dim s1 As String()
        Dim dic As Object = CreateObject("Scripting.Dictionary")
        'Dim dic2 As Object = CreateObject("Scripting.Dictionary")
        'Dim dic3b As New Dictionary(Of Integer, Integer)
        Dim mass_int() As String
        ReDim mass_int(31)
        Dim mass_str1 As String
        Dim str_save As String
        'ReDim mass_str(30)
        Dim i, k, n As Integer, t As Date = TimeOfDay 'Now
        Dim kol_znach As Integer
        'Dim s2(s1.Length - 1) As String
 
        ' чтение данный в словарь dic из 
        'For i = 0 To s1.Length - 1
        '    dic.Add(i, s1(i)) '
        'Next
        str_save = "30708464,9,15,39,69,82,6,22,52,76,90,24,49,56,60,77,8,18,46,64,73,14,31,48,75,83,4,29,33,59"
        dic.Add(1, str_save)
 
        str_save = "30746351,3,12,27,60,72,5,34,50,73,88,19,29,42,67,80,7,24,49,59,69,30,45,57,66,84,17,25,32,75"
        dic.Add(2, str_save)
        str_save = ""
 
 
        Dim i1, i2, i3, i4, id1, i_col As Integer
        str_save = Now & vbCrLf
        'IO.Files.WriteAllText("d:\info6_zn.txt", str_save, False)
        My.Computer.FileSystem.WriteAllText("d:\info6_zn.txt", str_save, False)
 
        Console.WriteLine(TimeOfDay & "старт")
 
        'поиск цифр
        For i1 = 1 To 1 '87
            For i2 = i1 + 1 To 2 ' 88
                For i3 = i2 + 1 To 89
                    For i4 = i3 + 1 To 90
 
                        'перебор словаря
 
                        kol_znach = 0
                        For id1 = 0 To dic.Count
                            mass_str1 = dic.item(id1)
 
                            If mass_str1 <> Nothing Then
                                mass_int = (mass_str1.Split(","))
 
                                For i5 = 1 To UBound(mass_int)
                                    ' поиск наличия i1, i2, i3, i4 одного или комбинации
                                    If i1 = Val(mass_int(i5)) Then
                                        kol_znach = kol_znach + 1
                                    End If
                                    If i2 = Val(mass_int(i5)) Then
                                        kol_znach = kol_znach + 1
                                    End If
                                    If i3 = Val(mass_int(i5)) Then
                                        kol_znach = kol_znach + 1
                                    End If
                                    If i4 = Val(mass_int(i5)) Then
                                        kol_znach = kol_znach + 1
                                    End If
 
 
                                Next i5
                            End If
                        Next id1
 
                        ' При количестве вывод результатов в файл
                        If kol_znach > 0 Then
                            str_save = i1 & "," & i2 & "," & i3 & "," & i4 & "," & kol_znach & vbCrLf
                            My.Computer.FileSystem.WriteAllText("d:\info6_zn.txt", str_save, True)
                        End If
 
                    Next i4
                Next i3
 
            Next i2
        Next i1
 
        'время работы программы
        str_save = Now & vbCrLf
        My.Computer.FileSystem.WriteAllText("d:\info6_zn.txt", str_save, True)
        Console.WriteLine((TimeOfDay - t).ToString & "финиш")
        Console.ReadKey()
    End Sub
Добавлено через 15 минут
Попробовал убрать перобразование VAL, и искать просто вхождение строк:
If InStr(mass_str1, "," & i1) > 0 Then

Стало медленнее 44 против 37.
0
Эксперт .NET
10234 / 7337 / 1156
Регистрация: 21.01.2016
Сообщений: 27,788
22.08.2017, 09:31 15
77gizmo_zx, какая дичь Нафига тут словарь? Почему работа идёт как с текстом и через одно место (подразумевается задница), а не разбор в массив числовых значений (int32) c которыми в стопятсот раз удобнее и быстрее работать? По ссылке с суффиксным массивом вы не ходили?
0
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 45
22.08.2017, 09:54  [ТС] 16
По ссылке "суффиксный массив" ходил, но видимо что уровень моей образованности в этом направлении желает лучшего, не придумал как это применить.
" какая дичь " так многие о моем коде отзываются...
Мне бы поподробней разжевать и хорошенько пнуть в нужном на правлении...
Для меня словари были открытием.
0
Эксперт .NET
10234 / 7337 / 1156
Регистрация: 21.01.2016
Сообщений: 27,788
22.08.2017, 10:15 17
gizmo_zx,
* Читаете строку;
* Разбираете её, что бы получить массив чисел, что в ней прописаны;
* Строете суффиксный массив по этому массиву (получится массив массивов);
* Готово: полученный массив содержит все наборы чисел, из строки. Вас должны интересовать те, что длинее трёх элементов.

В результате, вы для каждой строки получите все наборы чисел, что там есть (не комбинации, конечно же). Т.е. не нужно будет тупо в четыре цикла "придумывать" возможные комбинации и искать их в строке. Всё, что в ней было будет в вашем суффиксном массиве. Просто берите первые четые числа из каждой записи и используя как ключ в SortedSet увеличиваете счётчик (для каждой комбинации свой счётчик). PROFIT.

Добавлено через 2 минуты
Если что-то из этого непонятно, то не стесняйтесь гуглить. За это не садят.

Добавлено через 7 минут
Тут ещё распараллелить всё это можно, но думаю, что вам и без этого будет над чем голову поломать.
2
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 45
22.08.2017, 13:08  [ТС] 18
Раздербанел строку в байтовый массив.
Только не понятно как из нее суффиксный массив слепить, если в ней цифры не повторяются (первый длинный номер можно откинуть) т.е. получил после сортировки:
4,6,8,9,14,15,18,22,24,29,31,33,39,46,48,49,52,56, 59,60,64,69,73,75,76,77,82,83,90
В строке 30 цифр (от 1 до 90).
В одной строке они не повторяются.

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        Dim str_save As String
        Dim mass_str() As String
        Dim a_int As Integer
        str_save = "30708464,9,15,39,69,82,6,22,52,76,90,24,49,56,60,77,8,18,46,64,73,14,31,48,75,83,4,29,33,59"
        mass_str = (str_save.Split(","))
 
        Dim a() As Byte
        ReDim a(29)
 
 
        For i = 1 To 29
            a_int = Val(mass_str(i))
            a(i) = CByte(a_int)
 
 
        Next i
        Array.Sort(a)
0
Эксперт .NET
10234 / 7337 / 1156
Регистрация: 21.01.2016
Сообщений: 27,788
22.08.2017, 15:29 19
gizmo_zx, массив можно получить и вручную пройдясь по строке используя "конечный автомат". Это существенно снизит количество мусора создаваемого программой и поднимет производительность. Но этим потом можете заняться, для оптимизации.

Про суффиксный массив я загнул - он используется для поиска подстроки (с комбинацией чисел тоже проканало бы), но вам же не нужно что-то конкретное, вам нужно всё содержимое строки.

Получив на руки массив, вы уже почти заимели результат. Теперь осталось пройтись по нему, и брать числа по четыре штуки, стряпать из них ключ (к примеру: i1 + (i2 * 100) + (i3 * 10000) + (i4 * 1000000) или иной вариант некоторого уникального значения для каждой комбинации - лишь бы не строка) и по нему обращаться к счётчику в виде SortedDictionary<int, int>.

Если с SortedDictionary будет медленно работать, то можно попробовать и массив, в котором ключ будет выступать индексом. Но этот подход хоть и будет супер быстр (турбореактивен просто) сожрёт уйму памяти (количество возможных комбинаций * размер счётчика).
1
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 45
12.09.2017, 10:07  [ТС] 20
Бодрого дня.
Наваял очередной "шедевр" работает, но не быстро.
Одна итерация около 80 минут с файлом в 125.000 строк
Ну и далее ускоряет. К 25 итерации уже 35 минут.
Всего полных 90 итераций проходят чуть больше суток.
Как можно еще ускорить?
Пока только придумал запускать на разных машинах (на одной с 1 по 15, на второй с 16 - до конца)
VB.NET
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
Module Module1
    Dim mass_g_b(,) As Byte
    Sub Main()
        Call main4()
        'Call load_mass()
    End Sub
 
    Sub main4()
        '        Call main3()
        Call load_mass()
        Console.Clear()
        Dim i1, i2, i3, i4, i5, kol_el, i1_max, i1_x As Integer
        Dim t As Date = Now
        Dim mass_min(29) As Byte
        Dim mass_out(90) As String
        Dim str_save As String
        Console.WriteLine("Загрузка данных (сек.) : " & DateDiff("s", t, Now))
        str_save = ""
        My.Computer.FileSystem.WriteAllText("d:\info6_zn.txt", str_save, False)
        'Array.Sort(mass_g_b)
 
        Console.WriteLine("Начальное значение (от 1): ")
        i1_x = Val(Console.ReadLine())
        Console.WriteLine("Конечное значение (по 87) : ")
        i1_max = Val(Console.ReadLine())
 
        For i1 = i1_x To i1_max
            For i2 = i1 + 1 To 88
                For i3 = i2 + 1 To 89
                    'kol_el = 0
                    For i4 = i3 + 1 To 90
                        kol_el = 0
                        For i5 = 0 To UBound(mass_g_b, 1)
                            'kol_el = 0
                            For i6 = 0 To 29
                                mass_min(i6) = mass_g_b(i5, i6)
                            Next i6
 
                            If Array.BinarySearch(mass_min, CByte(i1)) > -1 Then
                                kol_el = kol_el + 1
                            End If
 
                            If Array.BinarySearch(mass_min, CByte(i2)) > -1 Then
                                kol_el = kol_el + 1
                            End If
 
                            If Array.BinarySearch(mass_min, CByte(i3)) > -1 Then
                                kol_el = kol_el + 1
                            End If
 
                            If Array.BinarySearch(mass_min, CByte(i4)) > -1 Then
                                kol_el = kol_el + 1
                            End If
 
 
                        Next i5
 
                        If kol_el > 0 Then
                            mass_out(i4) = i1 & "," & i2 & "," & i3 & "," & i4 & "," & kol_el & vbCrLf
                            'My.Computer.FileSystem.WriteAllText("d:\info6_zn.txt", str_save, True)
                        End If
                    Next i4
 
                    For i7 = i3 + 1 To 90
                        If mass_out(i7) <> "" Then
                            My.Computer.FileSystem.WriteAllText("d:\info6_zn.txt", mass_out(i7), True)
                        End If
                    Next i7
 
                Next i3
                'Console.WriteLine("Затрачено на обработку(сек.) i3: " & DateDiff("s", t, Now) & " i1: " & i1 & " i2: " & i2)
            Next i2
            Console.WriteLine("Затрачено на обработку(сек.) : " & DateDiff("s", t, Now) & " i1: " & i1) '& " i2: " & i2)
        Next i1
        Console.WriteLine("Затрачено на обработку(сек.): " & DateDiff("s", t, Now) & " kol_el=" & kol_el)
        Console.ReadKey()
    End Sub
    Sub load_mass()
        'Dim str_save As String
        Dim mass_str() As String
        Dim a_int As Integer
        'str_save = "30708464,9,15,39,69,82,6,22,52,76,90,24,49,56,60,77,8,18,46,64,73,14,31,48,75,83,4,29,33,59"
        'mass_str = (str_save.Split(","))
 
        Dim a() As Byte
        ReDim a(29)
        ReDim mass_str(30)
 
        'For i = 1 To 29
        '    a_int = Val(mass_str(i))
        '    a(i) = CByte(a_int)
 
 
        'Next i
        'Array.Sort(a)
        'ReDim mass_g_b(1, UBound(a))
 
 
        Dim sfile1 As String
        sfile1 = "d:\info6_upd34.txt"
        Console.WriteLine("Имя файла:")
        sfile1 = (Console.ReadLine())
 
        Dim i1, i2 As Integer
        Dim s1 As String() = IO.File.ReadAllLines(sfile1, System.Text.Encoding.Default)
 
        ReDim mass_g_b(s1.Length - 1, 29)
 
        'For i = 0 To s1.Length - 1
        '    mass_g_b(i
        'Next i
 
 
        For i1 = 0 To s1.Length - 1
            mass_str = (s1(i1).Split(","))
            For i = 1 To 29
                a_int = Val(mass_str(i))
                a(i) = CByte(a_int)
 
 
            Next i
 
            For i2 = 1 To 29
 
 
 
                mass_g_b(i1, i2) = a(i2)
            Next i2
        Next i1
    End Sub
    
End Module
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.09.2017, 10:07
Помогаю со студенческими работами здесь

Операции с большими массивами данных
Доброе время суток! Мне нужно оперировать большими объемами данных - массивы до 4 Гб....

Советы по оптимизации роботы с большими массивами.
Интересуют методы оптимизации работы с большими массивами Обрабатываются большие (несколько...

Как правильно работать с большими массивами?
Здоровый у меня массив. 30000 строк. И постоянно обновляется. Я его постоянно очищаю If...

Как оптимизировать работу с большими массивами изображений
Добрый вечер. Хотел бы получить небольшую консультацию. В процессе работы приложения, необходимо...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru