Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Счётчик.

Ответить
Настройки темы
CMD/BAT - Счётчик.

Пользователь


Сообщения: 105
Благодарности: 2

Профиль | Отправить PM | Цитировать


Изменения
Автор: serg515
Дата: 27-12-2020
Как написать числа от 1 до 1000000.
Средствами .bat
Можно и .vbs

Отправлено: 17:40, 27-12-2020

 

Аватара для Fors1k

Старожил


Сообщения: 193
Благодарности: 112

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
Set-Content c:\test.txt (1..1000000)
215ms
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:04, 28-12-2020 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Fors1k:
215ms »
SSD?


megaloman, вообще — да: когда-то коллективно игрались на предмет того, эффективно ли делать вывод больших объёмов текста блоками строк (по сравнению с байтовым), и, если да — то какими именно. Насколько помнится, оптимальные цифры «крутились» вокруг 512-4096 байт — у разных участников.
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:56, 28-12-2020 | #12


Аватара для Fors1k

Старожил


Сообщения: 193
Благодарности: 112

Профиль | Отправить PM | Цитировать


Цитата Iska:
SSD? »
SSD!


Но сам SSD - не панацея:
Цитата Vadikan:
1..1000000>> c:\test.txt »
21sec

Отправлено: 03:35, 28-12-2020 | #13


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Fors1k:
SSD! »
Спасибо, ясно.

Цитата Fors1k:
Но сам SSD - не панацея: »
Конечно. Будет время — попробую проверить, нет ли в этом того же самого миллиона «приседаний».

Отправлено: 07:16, 28-12-2020 | #14


Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


Iska,
У меня ноут 2007 года. HDD заменил на SSD. Отчитываюсь
Прямой перебор
Код: Выделить весь код
T = Timer()
Filename = "Z:\Box_Out\aaa.txt"

Nmax = 1000000

With CreateObject("Scripting.FileSystemObject")
    Set fOut = .CreateTextFile(Filename, True)
    fOut.Close
                
    Set fOut = .OpenTextFile(Filename, 8, False)
    
    For i = 1 To Nmax - 1
        fOut.WriteLine CStr(i)
    Next
    fOut.Write CStr(Nmax)
    
    fOut.Close
End With

MsgBox Timer() - T
Запись блоками
Код: Выделить весь код
T = Timer()
Filename = "Z:\Box_Out\aaa.txt"

Nmax = 1000000
Nstep = 100	'Ограничение: NNax должно нацело делиться на Nstep

With CreateObject("Scripting.FileSystemObject")
    Set fOut = .CreateTextFile(Filename, True)
    fOut.Close
                
    Set fOut = .OpenTextFile(Filename, 8, False)
    
    jMax = Nmax - Nstep + 1
    
    For j = 1 To jMax Step Nstep
        If j <> 1 Then
            jj = j
            ss = ""
        Else
            jj = 2
            ss = "1"
        End If
        
        For i = jj To j + Nstep - 1
            ss = ss + vbCrLf + CStr(i)
        Next
        fOut.Write ss
    Next
    
    fOut.Close
End With

MsgBox Timer() - T
Код: Выделить весь код
1	20,1	сек
10	4,9	сек
50	3,3	сек
100	3,1	сек
200	3,2	сек
500	3,7	сек
1000	5,1	сек
10000	56,0	сек
Можно, наверное, соптимизировать алгоритм, чтобы записывать не одинаковое количество чисел, а приблизительно одинаковое количество байт, но стОит ли?
Наверное, не всё так универсально, тут соотношение производительности процессора и скорости записи в файл важно.
Кстати, скрипт в качестве макроса Excel при записи по 100 чисел выполнился у меня в 2 раза быстрее, а при прямом переборе -всего на 20%.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 28-12-2020 в 10:57.

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:08, 28-12-2020 | #15


(*.*)


Сообщения: 36561
Благодарности: 6694

Профиль | Сайт | Отправить PM | Цитировать


Цитата Fors1k:
21sec »
Я-то думал, что тут самыми короткими пиписьками меряются, а оказалось - кто быстрее закончит :)

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 12:11, 28-12-2020 | #16


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата megaloman:
Оптимизация пределов цикла по скорости выполнения. Результат: снижение времени выполнения ~20 раз »
О!

Отправлено: 03:02, 29-12-2020 | #17



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Счётчик.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Счётчик файлов ul9 Скриптовые языки администрирования Windows 1 16-07-2014 16:53
Счётчик производительности *Processor* -MAXX- Автоматическая установка Windows 2000/XP/2003 9 03-10-2006 15:59
Счётчик на ярлычок MrGreeN Microsoft Windows 95/98/Me (архив) 3 15-10-2003 17:16
Счётчик - как сделать? diter Вебмастеру 5 03-10-2003 17:05
Счётчик посещений Evita Вебмастеру 13 27-08-2002 13:59




 
Переход