Цитата |
---|
Казанский пишет: Вы не поставили ; в конце оператора Print. |


Попробовал этот подход для своего случая - работает примерно в 4 раза медленнее, чем версия с Join, скорость тоже линейная.
Т.е. вариант во многих случаях приемлемый и простой.
23.04.2014 12:20:31
![]() ![]() Попробовал этот подход для своего случая - работает примерно в 4 раза медленнее, чем версия с Join, скорость тоже линейная. Т.е. вариант во многих случаях приемлемый и простой. |
|||
|
22.04.2014 22:30:43
Попробовал несколько подходов, вот результаты:
1. Самый быстрый подход, как и предполагалось - прямое сохранение листа в CSV файл ( Но, к сожалению, в моём случае этот "велосипед" не подошёл, т.к. требуемый формат более хитрый, и сохраняемые данные - это лишь часть сложного выходного файла. 2. Отлично показал себя подход с Join (
Среднее время у меня получилось 6.3 мс на N=10000. 3. Примерно на том же уровне по скорости - подход с резервированием буфера и вставкой нужных строк по кусочкам при помощи MID ( Среднее время получилось 7.8 мс на N=10000. Но у него есть недостаток - размер строкового буфера ограничен в 64К, а в моём случае это критично. 4. Исходный подход с итеративной склейкой - как и ожидалось, оказался очень тормозным. Среднее время 102 мс на N=10000. Причём зависимость от N квадратичная, и это в моём случае самое неприятное! 5. Подход с буферизацией ( 6. Подход с заменой N итераций по Cells на одну выборку через Range(...).Value - взлетел отлично, спасибо! ( ИТОГ: удалось ускориться в десятки раз и, самое главное, избавиться от квадратичных зависимостей. Всем спасибо огромное за помощь!! |
|||
|
22.04.2014 11:48:18
Исходная задача:
На листе есть длинный ряд числовых значений (число колонок 1000-10000). Нужно эффективно записывать эти числа в текстовый файл, разделяя запятыми. Первое, что приходит в голову: UPD: блин, редактор форума глючит!! ==
Но есть подозрение, что это решение будет очень неэффективным из-за переаллокаций памяти. Может быть, есть какие-то более правильные методы? UPD2: упаковал код в тег code
Изменено: |
|||
|
21.11.2007 12:29:12
О, оказывается, есть дубликаты этой ветки с интересными решениями:
|
|
|