Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


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

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


50000 — многовато, начинают сказываться издержки на конкатенацию строк.

Для примера

0004.vbs:
Код: Выделить весь код
Option Explicit

Dim dtNow

Dim strSourceFile
Dim iCount
Dim i, j
Dim sValue


dtNow = Now()

strSourceFile = "C:\Мои проекты\0254\полная фигня 2.txt"
iCount = 2^15

Randomize Timer

With WScript.CreateObject("Scripting.FileSystemObject").CreateTextFile(strSourceFile, True)
	For i = 1 To iCount
		sValue = ""

		For j = 1 To 2^10 ' Всего — 2^25, 32Мб выйдет
			sValue = sValue & Chr(Int(96 * Rnd()) + 32)
		Next

		.Write sValue
	Next

	.Close
End With

WScript.Echo DateDiff("s", dtNow, Now())

WScript.Quit 0
и 0005.vbs:
Код: Выделить весь код
dtNow = Now()

NMax = 2^25
OutFile = "C:\Мои проекты\0254\полная фигня 543210.txt"

N1 = 0
N2 = 255

Quant = 50000

NS = N2 - N1

ReDim S(NS)

For i = 0 To NS
    S(i) = Chr(i + N1)
Next

NS1 = NS + 1
SS = ""

Randomize

Set FSO = CreateObject("Scripting.FileSystemObject")
With FSO.CreateTextFile(OutFile, True)
	j = 0
	For i = 1 To NMax
		j = j + 1
    		SS = SS + S(Int(NS1 * Rnd))
		If j = Quant Then
			j = 0
			.Write SS
			SS = ""
		End If
	Next

    	If j > 0 Then .Write SS
    	.Close
End With

'MsgBox "Скрипт завершен"
WScript.Echo DateDiff("s", dtNow, Now())
Примерный итог:
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:17, 28-03-2019 | #14