VVL99
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору FridrGauss (пост) Пока обсуждали я пробовал делать решение на js, но поскольку обсуждение прекращено, мне это больше не нужно - http://vvl99.narod.ru/cmd/dns.rar там три hta на js, с незначительными отличиями, но результат одинаковый. ===Для ясности=== Обработка файла 629 строк, 19 кб. CMD выполняет задачу за 1 мин. 40 сек. JS выполняет задачу за ~0.060 сек. http://klikr.org/38e26d0f83509ddddac65ab4c889.png http://klikr.org/f1045590364d9bb64761e1ed8b4b.png Добавлено: Если использовать только JS, то скорость выше 31-47мс. http://klikr.org/228f75b3fb6b882b9d99aa5da649.png DNSCrypt2.js Код: var start = new Date(), end, Ns = "", list = "'scaleway-fr'$server_names = ['cloudflare'],dnscrypt_servers$dnscrypt_servers = false,doh_servers$doh_servers = true,require_dnssec$require_dnssec = true,fallback_resolver$fallback_resolver = '1.0.0.1:53',netprobe_timeout$netprobe_timeout = 0,netprobe_address$netprobe_address = '1.0.0.1:53',block_ipv6$block_ipv6 = true,'blacklist.txt'$blacklist_file = 'blacklist.txt','ip-blacklist.txt'$blacklist_file = 'ip-blacklist.txt'".split(","), fso = new ActiveXObject("Scripting.FileSystemObject"), f = fso.OpenTextFile("example-dnscrypt-proxy.toml", 1, !0); while (!f.AtEndOfStream) { var s = f.ReadLine(); for (var i = 0; i < list.length; i++) { if (s.match(list[i].split("$")[0])) { Ns += "## " + s + "\r\n" + list[i].split("$")[1] + "\r\n"; s = "" } }; if (s != "" && !s.match(/^\s*?#|^$/)) { Ns += s + "\r\n" } }; f.Close(); f = fso.OpenTextFile("dnscrypt-proxy2.toml", 2, !0); f.Write(Ns); f.Close(); end = new Date(); WScript.Echo("прошло - " + (end - start) + "мс") | А если исключить обработку пустых строк, то можно и ещё отыграть несколько тысячных. Добавлено: Интересно, а PowerShell как решает такую задачу и сколько у него уходит на это время. | Всего записей: 4158 | Зарегистр. 03-02-2011 | Отправлено: 16:46 29-11-2019 | Исправлено: VVL99, 19:08 29-11-2019 |
|