|
|
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Андрей Игоревич... И стоп в 2 раз. А сколько можно столбцов в БД сделать? 350 можно? Никаких подводных камней не будет? Это, как мне кажется, очень так ускорит заполнение. Много можно. Видел табличку в 500 полей. Главное, чтобы данных там не более 64кБайт (реально - чуть поменьше) на одну запись набралось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 18:53 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
чччДСам ли всегда носом в блюдечко с молочком с первого раза попадаешь? Я последние дни невыспатый, приболевший и злой, не отрицаю. Но когда накоплены гигабайты данных - это уже далеко не "первый раз попасть в блюдечко". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 18:53 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
AriochАндрей Игоревич1. Найти - это хорошо, но сложно :). Это легко. http://www.sql.ru/forum/afsearch.aspx?s=cachedbuffers&submit=?????&bid=20 Сложно - оценить надежность и выигрыш в скорости в вашем случае. Стоит ли овчинка выделки и не будет ли с ней хуже ,чем без нее. Стало ещё сложнее :). AriochАндрей Игоревичповреждение данных в обычных условиях кажется мне маловероятным Да, каждой конкретное повреждение маловероятно. Но у вас 2 миллиарда байтов только в одоном файле. Закон больших чисел может вас догнать. Впрочем, если вы не занимаетесь расчётными функциями, а просто визуализируете посчитанное и данное вам другими - то "случайные изменения в паре десятков чисел ни на что не повлияют" Однако вот отслеживать повреждления данных в процессе передачи оттуда, где их считали, к вам - весьма рекомендую. Повреждения файлов при перекачке в сети у меня встречались. Андрей Игоревичсовременные носители информации, думаю, имеют всякие там суммы и прочие данные .....крайне дешевы, на грани самоокупаемости. Со всеми вытекающими для запасов прочности - их мало. а кроме самих дисков - есть ещё межкомпьютерная сеть, есть оперативная память в компьютерах (и у бытовых комьпютеров там никаких ECC близко нет). Хотя если Workstation, то может и быть в принципе. Ради интереса поинтересуюсь у друга, который как раз работает с программами для АЭС как там всё реализовано на эту тему, но, если честно, первый раз слышу. Так то у меня на компьютере немало расчетных комплексов (аттестованных, с моим кодом не связанных) считается, и о реализации защиты от случайных повреждений данных не слышал, но может и есть что-то, поспрашиваю. AriochАндрей ИгоревичВ таком случае проще купить больше оперативной памяти и гонять вообще всё в ней Нет. Скорость винчестеров - чистых, не фрагментированных, подготовленных для потоковой работы - порядка 100 МБ/с Пусть у вас очень быстрый и очень новый винчестер и там 150 МБ/с Если же потоковой работы добиться не удастся, то скорость может упасть на порядок. Скорость оперативной памяти - на 2-3 порядка больше. Лень исктаь цифры, кроме того не знаю какая память в вашей рабочей станции. Есть крайне сложные вычислительные задачи, где процессор просто не успевает обработать все данные, которые ему даёт винчестер. Типа сжатия видео в высоком качестве. Но это редко. Обычно всё упрется либо в неумение программы использовать оперативную память для ускорения (привет старым паскалевским типизированным файлам), либо в скорость диска. Если винчестер может передать в секунду в оперативную память например 110 МБ, то больше там "не вырастет", даже есливы купите самую большую и самую быструю память - она просто простаивать будет. Ну после загона в память массива в 3гб (поля одной кампании) я ни разу не смог уперется в проблему с доступом к данным. По сути для моих текущих задач скорость работы из оперативной была избыточна. Сейчас должны поставить Воркстейшн с 32 ГБ оперативы (64 не дали, жмоты). Так как 10кккк это теоретический максимум значений, а по факту их в десятки раз меньше, то буду весма массив в оперативу загонять, но это решение только для компов с большим объемом оперативы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 18:54 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
YuRockYuRockсделать запрос с фильтром, когда "тригонометрическая формула" возвращает значение, близкое к нулю. И вообще, если такое возможно и штатно - то значит логика построена неверно - необходимо, я уже писал, устанавливать значение при значении делителя, близком к нулю, и при всех остальных, с помощью CASE, например. Типа такого: Код: sql 1. 2. 3. 4. 5. 6. 7. Вот-вот-вот. И получаем мы здесь дважды вычисление одного и того же значения, один раз чтобы проверить на underflow, а вторйо раз, чтобы использовать. Счастливое царство копипаста. .....но олько ,а откуда ты взял 0.000001 ? может быть это как раз огромное, большое значение в данном задаче? То есть надо считать обе части формулы и сравнивать не с константой, а с реальным значением. IF ABS( ..... ) < 0.000001*ABS( ...... ) ОК, а если в формуле не одно деленрие, а три - пишем уже ВОСЕМЬ копипастов? А если там кроме деления - корни квадратные, арксинусу с арктангенсами и прочая? В итоге такой фрактал вырастет, что код на Delphi будет проще, понятнее, короче и быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 18:57 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Андрей ИгоревичИ стоп в 2 раз. А сколько можно столбцов в БД сделать? 350 можно? Никаких подводных камней не будет? Это, как мне кажется, очень так ускорит заполнение. Столбцов должно быть столько, сколько есть разнотипных значений. https://ru.wikipedia.org/wiki/Нормальная_форма https://habrahabr.ru/post/254773/ Если у комнаты есть площадь и есть количество койкомест - то это два разных столбца. А когда у нас есть квартиры 2-комнатные и 5-комнатные, не нужно делать строки из 2х2=4 и 5х2=10 столбцов. А нужно просто завести по одной строке на каждую комнату, а какие комнаты относятся к каким квартирам - хранить в другой таблице. PS. также в многоверсионных серверах, как Firebird, слишком "широкие" строки медленно обновляются. Если вы их один раз записали и болье не трогаете - то это одно. А если периодически меняете то одно поле, то два - то совсем другое. Я вам на прошлой странице ссылки на ibase.ru давал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 19:02 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Андрей ИгоревичВ принципе 50ккк значений что такое КуКлуксКлан в этом контексте? Андрей ИгоревичА сколько можно столбцов в БД сделать? 350 можно? https://firebirdsql.org/en/firebird-technical-specifications/ Item Actual for Firebird 2.5 Maximum row size 64 KB Maximum number of columns per table Depends on data types used. (Example: 16,384 INTEGER (4-byte) values per row.) 16384x4 = 64K ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 19:04 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
AriochЕщё раз, как мне внутри многострочного UPDATE сделать просмотр всех его столбцов ровно на той строке, где возникло исключение Я уже писал, что никак. Внутри у UPDATE это что - "PDAT" разве что? :) Это просто оператор, какие у него могут быть "внутренности" - не должно волновать прикладного программиста, который использует его. AriochДопустим мне данные прислали и на рабочей машине воспроизводится Хорошо, когда так бывает. Только долго и не далеко всегда. Логи гораздо быстрее можно получить разными способами. AriochКакая-то из них выдает не значение, а ошибку "деление на ноль" на какой-то строке запроса. Значит два варианта: 1. Некорректные аргументы функции - тогда еще проще - необходимо проверять корректность этих аргументов в CASE; 2. Глючная функция - тогда её надо исправить. Тут да, придется спец. SQL-блок писать, чтобы определить, какая запись к исключению приводит. Один раз, для исправления функции. Так или иначе, любая функция не должна вызывать никаких исключений на всей области определения . Поэтому, опять же, надо просто проверять на вхождение параметров в эту область определения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 19:06 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
YuRockЯ уже писал, что никак. и поэтому расчетные задачи на SQL можно жделать только в примитивных случаях, которые и расчётными назват нельзя по сути YuRockЛоги гораздо быстрее можно получить разными способами. не вопрос, как мне получить лог всех столбцов проблемной строки многострочного UPDATE ? несколько сотен тысяч строк до и после проблемной в лог пихать не надо, только строку, на которой ошибка ? YuRockТак или иначе, любая функция не должна вызывать никаких исключений на всей области определения На области определения она и не вызывает. Деление на ноль происходит вне области определения. А вот выход из идеальной математики без нулей в реальный underflow с не-ноль-равен-нулю происходит неожиданно, и хрен найдешь на каких данных. В итоге при малейших проблемах то, что в Delphi ловится за пару минут, на SQL занимает час, а то и несколько (например если запрос отрабатывает долго). Откуда возвращаемся к моему исхдоному тезису, что попытка написать массовую сложную расчетную задачу изано на на SQL в одну простую строку приводит к огромным потерям времени на создание многостраничных запросов с перепроверкой всех результатов и на поиск конкретных данных, которые ошибку породили. Если же ее изначально писать на Дельфи, то процедура будет куда менее элегантной чем однострочный UPDATE и потратить на организацию циклов времени придется, однострочником не обойтись, зато проблема при вычислениях ловится наглядно и удобно. Есть еще какие-то специализированные языки именно для потоковой обработки больших массивов данных, что-то типа R или H, не помню, не изучал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 19:15 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Андрей Игоревич Давай чуть-чуть поболтаем. Можно данные в базу/из базы записывать не по одному элементу, а блоками. К примеру, есть у тебя 4-х мерный массив, каждая размерность шириной в сто тыщ. Если работать с одной плоскостью (100 000 х 100 000), то понадобится всего 10 млн ячеек памяти. Нормально. Если по твоим алгоритмам ты долго работаешь именно в одной плоскости, то работай с памятью, а как перескочишь на другую - сбрасывай этот блок в базу, доставай оттуда новый и работай с ним. Можно сразу несколько блоков хранить в памяти (например, последние из используемые, или самые часто используемые, или как тебе подсказывает твоя логика обработки данных). Как это делать. Можно написать класс-"менеджер", который имитирует работу с многомерной табличкой. Ты ему указываешь координаты данных, а он тебе возвращает их И ради отдельного элемента он базу не лезет, а лезет лишь в случае, когда блока данных этого элемента нет в памяти. Код: pascal 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. Как с этим работать. Также, как с массивом. Только его (экземпляр "массива-класса") следует создать: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Скорость вырастет не в 3-10 раз, а побольше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 19:17 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Ariochможет быть это как раз огромное, большое значение в данном задаче? Надо проверять на вхождение в область определения. Только и всего. Я 0.00001 как пример привёл. AriochОК, а если в формуле не одно деленрие, а три - пишем уже ВОСЕМЬ копипастов? Их можно не делать. Как и на клиенте. Просто падать будет. AriochА если там кроме деления - корни квадратные, арксинусу с арктангенсами и прочая? В итоге такой фрактал вырастет, что код на Delphi будет проще, понятнее, короче и быстрее. И будет падать точно так же, только на клиенте, которого обновить сложнее, т.к. их обычно больше, чем баз. Ок, хозяин - барин, но для меня как-то странно звучит тезис "Лучше писать логику в делфи, чем в базе, потому, что база может выдавать арифметические исключения" (при том, что эти же арифметические исключения и делфи точно так же выдает). И ловятся такие ошибки, повторяю, элементарным запросом с параметрами из лога. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 19:18 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
AriochАндрей ИгоревичИ стоп в 2 раз. А сколько можно столбцов в БД сделать? 350 можно? Никаких подводных камней не будет? Это, как мне кажется, очень так ускорит заполнение. Столбцов должно быть столько, сколько есть разнотипных значений. https://ru.wikipedia.org/wiki/Нормальная_форма https://habrahabr.ru/post/254773/ Не ну это просто правила хорошего тона, но мне-то хорошим быть не обязательно. И если "минимальная логическая избыточность" конфликтует с быстродействием, то почему бы не подзабить на неё :), тем более БД всё равно в таком виде выглядит как костыль. В мечтах я думал о динамическом создании миллионов таблиц связанных древовидной иерархией, но отпугивает потенциальная сложность и куча подводных камней, которые непременно всплывут. AriochАндрей ИгоревичВ принципе 50ккк значений что такое КуКлуксКлан в этом контексте? КилоКилоКило значений :), я думал это очевидно. Кстати, я тут походу переборщил с этими Кило, в общем 50 (100) миллионов значений имелось в виду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 19:21 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Ariochне вопрос, как мне получить лог всех столбцов проблемной строки многострочного UPDATE ? несколько сотен тысяч строк до и после проблемной в лог пихать не надо, только строку, на которой ошибка ? Очень просто: получить параметры запроса. А "у себя" сделать "развернутый" запрос с этими параметрами - и получить запись. AriochВ итоге при малейших проблемах то, что в Delphi ловится за пару минут, на SQL занимает час. Ок, спорить не хочу. Arioch(например если запрос отрабатывает долго). Ну конечно же, логика в цикле на клиенте быстрее, чем UPDATE на сервере в 30 раз примерно (это я из "пару минут" и "час" вычислил). AriochОткуда возвращаемся к моему исхдоному тезису, что попытка написать массовую сложную расчетную задачу изано на на SQL в одну простую строку приводит к огромным потерям времени Ок, спорить не хочу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 19:25 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
YuRockи делфи точно так же выдает не точно также, а гораздо лучше -0 она позволяет посмотреть значения любых переменных В МОМЕНТ ОШИБКИ и позволяет записал а лог значения выбранны хпеременных В МОМЕНТ ОШИБКИ YuRockэлементарным запросом с параметрами из лога. Третий раз спрашиваю: как записать в LOG значения столбцов одной единственной строки из миллионострочного UPDATE, только той где произошла ошибка и никаких других ? YuRockИ будет падать точно так же, только на клиенте, которого обновить сложнее Прежде чем обновлять программу - нужно решить проблему. Прежде чем решить проблемУ, надо понять гдеи почему она возникает. Этот шаг в математических расчётных задачах на SQL сделать на порядки дольше и сложнее. PS. даже если ты напишешь мега-навороченный запрос, то вполне вероятно что этот запрос тоже буде тв твоём клиенте, так что все равно придется клиента обновлять ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 19:36 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
YuRockА "у себя" сделать "развернутый" запрос с этими параметрами - и получить запись. ?????? YuRockНу конечно же, логика в цикле на клиенте быстрее, чем UPDATE на сервере нет, дольше, но зато она запускается ОДИН раз а вот модифицировать запрос пытаясь нащупать где же и почему он падает - придётся много раз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 19:38 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
чччДИ ради отдельного элемента он базу не лезет, а лезет лишь в случае, когда блока данных этого элемента нет в памяти. Другими словами - надо написать кэш, пул. Не самая простая задача, но для однопоточного read-only кэша - не очень сложная. Однако - а если данные надо будет менять и записывать обратно? А как часто записывать? А как отслеживать "программа сломалась и упала не записав данные" ? А если будет несколько потоков (или несколько копий программы на разных компьютерах? Есть такое ругательство "когерентность кэша" https://habrahabr.ru/company/alconost/blog/344652/ То есть возвращаемся к "нужен программист", либо готовый, либо топикстартеру нужно быстро и довольно-таки глубоко изучать програмимрование "в целом" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 19:43 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
чччД Код: pascal 1. Память переполнилась, нужно выбросить какой-то блок из памяти. Как определить, какими блоками можно пожертвовать? Как сделать, чтобы программа не запуталась и не начала читать уже выброшенный из памяти блок там ,где он когда-то давно был? я знаю волшебные слова ARC и LRU, а топикстартер? это примерно как мне сейчас поручить с чистого листа рассчитать самый примитивный реактор, Ферми или Ф-1 там для человека в етме - делов на один вечер, а мне года не хватит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 19:47 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
чччДАндрей Игоревич Давай чуть-чуть поболтаем. Можно данные в базу/из базы записывать не по одному элементу, а блоками. К примеру, есть у тебя 4-х мерный массив, каждая размерность шириной в сто тыщ. Если работать с одной плоскостью (100 000 х 100 000), то понадобится всего 10 млн ячеек памяти. Нормально. Если по твоим алгоритмам ты долго работаешь именно в одной плоскости, то работай с памятью, а как перескочишь на другую - сбрасывай этот блок в базу, доставай оттуда новый и работай с ним. Можно сразу несколько блоков хранить в памяти (например, последние из используемые, или самые часто используемые, или как тебе подсказывает твоя логика обработки данных). Если честно, то именно так я хотел сделать, но при помощи типизированных файлов, а не БД. Есть ли какие-либо преимущества у БД для подобного вида операций? Тем более что у типизированного файла проще блоки реализовать. чччД Как это делать. Можно написать класс-"менеджер", который имитирует работу с многомерной табличкой. Ты ему указываешь координаты данных, а он тебе возвращает их И ради отдельного элемента он базу не лезет, а лезет лишь в случае, когда блока данных этого элемента нет в памяти. Код: pascal 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. Как с этим работать. Также, как с массивом. Только его (экземпляр "массива-класса") следует создать: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Скорость вырастет не в 3-10 раз, а побольше. Хз что такое класс-"Менеджер" (не, ну я узнал, что в Москве есть такое ООО), но суть я, наверно, понял. У данного способа есть недостаток. Если мне надо пройтись по всему массиву данных (весьма популярный "запрос"), как бы "вдоль" массива (вдоль - по времени) - то придётся поочерёдно загружать - выгружать всё БД для каждого запроса, либо дробить БД на более мелкие элементы. Хотя я ещё и не проверял (и возможно жестоко заблуждаюсь), но мне кажется, что запрос с диска и так устроит меня по времени отклика. Пока меня больше не устраивает время заполнения базы. Но завтра попробую много столбцов. Ну и как уже писал, мне больше вариант с типизированными файлами нравится для работы с "Блоками", тем более приложение на делфи 2ГБ типизированный файл с ССД загружает за несколько десятков секунд, сомневаюсь что БД так умеет. А вообще рабочий день закончился, надо бы отвлечься чтоль, а то от одного компа пересел за другой, что за жизнь то такая :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 19:48 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Андрей ИгоревичКилоКилоКило значений :), я думал это очевидно тут недавно ракету запускали. ракете было очевидно, как работает разгонный блок. разгонному блоку было очевидно, как работает ракета в результате все упало, потому что очевидности оказались разные также были байка про ракету Ариан-4, кажется программистам из НАСА было очевидно, что все физические единицы считаются в имперской системе французским программистам было очевидно, что все физические единицы считаются в СИ интеграторам было очевидно, что всем все очевидно, и они просто объединили эти части в одну программу, не проверяя напрасно и без того очевидного впрочем, возможно это просто байка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 19:53 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Arioch... Абстрактному программисту в вакууме фиг объяснишь, что нужно, тут не бухгалтерия, а чуток посложнее. А грамотный прикладник наверняка где-нибудь уже работает, фиг такого найдешь, т.к. такие недоступны - можно считать, что их нет. Тут нужен специалист в прикладной области, умеющий или желающий научиться чуть-чуть программировать. Человек это есть - ТС. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 19:54 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
чччДчуть-чуть программировать оптимистично ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 19:57 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Андрей ИгоревичУ данного способа есть недостаток. Если мне надо пройтись по всему массиву данных (весьма популярный "запрос"), как бы "вдоль" массива (вдоль - по времени) - то придётся поочерёдно загружать - выгружать всё БД для каждого запроса, либо дробить БД на более мелкие элементы. если будешь использовать типизированные файлы - то размер блока может быть любым. ... Можно данные массива хранить, "раскладывая" их по разным плоскостям. Данные будут храниться в избыточном (в разы) количестве, да, но зато ты сможешь пройтись "вдоль" массива также быстро, как и "поперек". ... Я на всякий случай предложил: мало ли, вдруг твои алгоритмы предполагают длительную работу в отдельных "срезах" массива, зная эту особенность, можно здОрово выиграть описанным выше способом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 20:01 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Андрей Игоревичтем более приложение на делфи 2ГБ типизированный файл с ССД загружает за несколько десятков секунд я бы еще подумал на тему Memory Mapped Files они могут "загружаться в память" вообще мгновенно но у них тоже есть недостатки. https://ru.wikipedia.org/wiki/Отображение_файла_в_память ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 20:03 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
чччД, типизированный файл скорее всего будет глючить при размерах >2ГБ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 20:03 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
AriochчччДчуть-чуть программировать оптимистично Реалистично. Умение кодить само по себе ценности не представляет. Чуть-чуть умеющий кодить прикладник с большой вероятностью создаст адекватную прикладную систему. А кодер, слабо знающий прикладную область, не создаст такую систему никогда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 20:07 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
чччДЧуть-чуть умеющий кодить прикладник с большой вероятностью создаст адекватную прикладную систему. .....пока система маленькая и не упирается в возможности железа. А когда надо начинать наворачивать кэши с разными срезами - это уже когда все, тупой метод "в лоб" перестал работать. И дальше.... как повезет. Начинается увеличение сложности, это влечет за собой свои и чужие ошибки, которые нужно вовремя опознать, потом найти, потом исправить.... Но "первое блюдце" он найдёт и вылакает без вопросов, спорить глупо. "Пока котлеты не подгорали" у топикстартер было всё отлично. А потом данные доросли до 2ГБ и началось..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 20:10 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39598536&tid=2041256]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
156ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
| others: | 212ms |
| total: | 481ms |

| 0 / 0 |
