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

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

Аватара для YuS_2

Crazy


Contributor


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

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


Цитата Iska:
Ну, таким макаром и на WSH можно сравнивать. В чём же тут отличия?! »
боюсь, что на wsh это делается не так уж и тривиально...

Цитата Iska:
сравнение оригинального и возможно изменённого содержимого на мой непросвещённый взгляд по времени будет никак не меньше, нежели поиск первого вхождения шаблона. »
Можно ведь это дело замерить...
Создаем файл test.txt на 100000 строк, заполненный числами от 0 до 9, по 100 символов в строке...
Код: Выделить весь код
$cnt,$cntstr=100000,10
$arr = 0..9
$str = -join (1..$cntstr|%{-join $arr})
1..$cnt|%{$str}|sc test.txt -enc utf8
меняем, скажем, предпоследний символ на букву "a" и запускаем тест:
Код: Выделить весь код
'==Условный блок=='
(1..10|%{
	(measure-command{
		if(($a = gc test.txt -raw) -match 'a'){
			$a -replace 'a'|sc out1.txt -enc utf8
		}
	}).totalseconds
}|measure -aver).average
''
''
'==Сравнение данных=='
(1..10|%{
	(measure-command{
		diff ($a = gc test.txt -raw) ($a -replace 'a')|
		? SideIndicator -eq '=>'|select -exp inputobject|
		sc out2.txt -enc utf8
	}).totalseconds
}|measure -aver).average
1. файл читается как единая строка, т.е. не построчно, т.к. в рамках этого топика именно такая задача и стояла
2. для более корректного подсчета, каждый тест запускается по 10 раз и вычисляется среднее время...

В сухом остатке:
Получилось, что наоборот, сравнение данных более затратно по времени, в том числе, и в случае если совпадения не существует... хотя отличия вполне сопоставимы...

Цитата Iska:
Про наглядность я вообще молчу. »
Наглядность - вещь субъективная и сильно зависит от знания языка.

-------
scio me nihil scire. Ѫ


Последний раз редактировалось YuS_2, 16-05-2019 в 18:41.


Отправлено: 18:27, 16-05-2019 | #26