Как стать автором
Обновить
13
1.3

Программист php, Bitrix

Отправить сообщение
Ну я писал выше — скорость сильно зависит от внешних к PowerShell'у причин. Т.е. проблемы чаще в винде, чем в PS. Однако, если вы таки погуглите, то увидите, что вопрос времени старта PS — очень актуальный и народ постоянно с этим сталкивается, как только дело доходит до массовой обработки чего-либо, а не единичного вызова.

Ну т.е. вот в моем примере — я обрабатываю один файл, поэтому задержки могу как-то потерпеть, эти команды — завершающий этап более длительного процесса, поэтому на общем фоне скорость уже не сильно критична. Но если бы таких файлов было несколько сотен — то это уже минуты потерянного неизвестно где времени.
Ну мы же вроде бы переключились на обсуждение, что длинные команды — плохо, но можно обойти?

Ну а про PowerShell если говорить, то каким-таким способом без гугла я бы смог добраться до конструкции (Get-ChildItem -LiteralPath '%outp%').CreationTime?

Ну т.е. вот возьмем cmd: большая часть команд или встроенная, или — внешние утилиты, которым дофига лет уже. Все эти команды — выдают вполне доступные справки, большая часть из них делают ВСЕ нужные операции в одном вызове. Современное решение от МС: узнать какие команды есть — можно встроенной справкой, которая никак не объясняет, зачем эти команды нужны. Справка по каждой конкретной команде так же никак не помогает понять что это и зачем. Половина параметров или без справки или изначально — составная часть других параметров и применяется только совместно. Встроенной справки на соотв. сочетания параметров — нет. Любая полезная инфа — только гуглится, т.к. справка на сайте МС в общем случае примерно так же полезна, как и встроенная.

В общем, использовать это всё «очень удобно».
Ну-ну. Что help, что Get-Alias в современных консольных утилитах от МС — это мёртвому припарки, проблема не в длине команд (это фигово, но с этим можно жить). Проблема в том, что для ЛЮБОЙ операции надо отдавать десятки этих длинных команд, последовательно. И вот в этом и жесть.

Ну вот, например, зацените по ссылке инструкцию. Начните с подраздела «Пересоздание BCD файла загрузчика Windows 10».

И вот просто прикиньте, как вы ВОТ ЭТО будете делать используя только встроенную в утилиты справку -help. Без гугла, ага. Это просто нереально, даже если бы справка выдавалась развернутая, а не в одно предложение.

P.S.: чтобы было понятнее, о чем я — во времена WinXP эти действия выполнялись ОДНОЙ командой и редактированием .ini-файла в блокноте. А не вот этой вот жестью в 13 последовательных вызовов одной и той же утилиты с разными параметрами
Так и я про то же. Время старта сильно зависит от подключаемых внешних сборок, да и то, хоть как-то оно заметно было во времена дотнета первой-второй версии, сейчас уже на фоне роста производительности железа это все не существенные величины.

Просто PS занимается кучей вещей на старте. Знаете, почем в моем примере команд "-NoProfile" написано? Потому что иначе PS подгружает инстанс того профиля под которым запускается, с соответствующими проверками на безопасность, права доступа и все остальные приседания, что и занимает минимум 2 сек на неслабом железе. И это только малая часть того, что там на старте происходит, достаточно погуглить как люди с проблемой задержек на старте борются. Это, наверное, вообще топовая тема вокруг PS — и C# тут, в общем-то, ни при чем.
Но далеко не все приложения на C# тормозят!
Ну, во-первых, bat-файл тоже запускает новый инстанс cmd. Это ему совершенно не мешает работать быстро. Даже если он использует внешние консольные утилиты, а не (уже) встроенные, типа date, attr и т.п.

А во вторых, нужную мне задачу не получилось реализовать в рамках одной команды, не смотря на всю эту объектную модель. Что, кстати, тоже хорошо показывает качество разработки этого самого PS.

Ну и в третьих, сам cmd запускается мгновенно, а ps — минимум за 2 секунды. Когда я гуглил в попытках как-то это всё ускорить до разумного времени, выяснилось забавное: в целом скорость запуска PS колеблется от 1,5 до 8 секунд. Причем скорость на разных компьютерах — разная, как повезет. В некоторых случаях можно применить разные шаманские пляски и/или ngen, чтобы ускорить процесс. Но это все равно 1,5 секунды на старт — минимум. А cmd — мгновенно. И я выберу cmd, при прочих равных.

Upd: ну и да, я в упор не понимаю, зачем тащить ВСЮ объектную модель и ссылки на внешние сборки в скрипт, который не будет их использовать. Почему оно использует аж 32 мб оперативки если я хочу, например, посмотреть текущую дату в консоли? При этом оно еще проверяет права доступа, учитывает профиль под которым запущено и еще миллион приседаний — и все это, чтобы вывести мне дату по запросу. Ага.
Почему бы это всё не подгружать по мере необходимости-то? Зачем тащить сразу и всё в процесс, если оно там в большом количестве сценариев никогда не будет использоваться?
Ну мне лень было программу писать, чтобы эту операцию переноса дат с файла на файл делать. А встроенной в cmd команды для работы с датами или хотя бы какой-то консольной утилиты в винде до сих пор нет. Пришлось вот на PS извращаться. Причем меня поразило даже не то, что команды для PS круче кода на Haskell'е, а то, что в 2020 году они ТОРМОЗЯТ!

Ну и да — PS явно под синтетическими наркотиками делали…

МС последнее время вообще считает, что если народ так любит командную строку — надо туда команды подлиннее запихнуть. Они всё так же не интуитивны, догадаться, какой параметр будет, не гугля — почти невозможно, при этом любой процесс описывается тремя-четырьмя последовательными командами с этими длиннющими параметрами. Достаточно хотя бы посмотреть, как прописывается через консоль загрузчик на нужный раздел и добавляется в меню выбора при загрузке. Зачем это все так извращённо сделано — я до сих пор понять не могу. Как-будто в МС засели любители юниксов, но самую важную часть про короткие консольные команды им в детстве никто не рассказал…
Пусть они сначала научат PowerShell хотя бы работать с какой-то адекватной скоростью, а не так как сейчас. Эти две строчки:
powershell -NoProfile "(Get-ChildItem -LiteralPath '%outp%').CreationTime = (Get-ChildItem -LiteralPath '%inp%').CreationTime"

powershell -NoProfile "(Get-ChildItem -LiteralPath '%outp%').LastWriteTime = (Get-ChildItem -LiteralPath '%inp%').LastWriteTime"

всего лишь копируют дату/время создания с одного файла на другой. Процесс занимает порядка 4 секунд. На 4,3 ггц процессоре с достаточным объемом свободной памяти и ssd диском.
И да, там есть разные танцы с бубном (вот эти вот "-NoProfile" в командах, например), которые позволяют время несколько сократить, раза в 2. Но это все равно адски много для столь простой операции.

Так что нет, за CMD — будущее
там, кстати, еще веселее бывает: сначала тебе показывают капчу, где надо галочками выбрать 3 картинки, но она всегда считается неправильной, что бы ты там не выбрал. После чего тебе уже показывают с исчезающими картинками
Причем я так мучался где-то месяца два, потом оно само «починилось». Народ в интернете пишет про проблему, но там разные шаманские пляски и они, в общем-то, бессмысленные и не помогают. Ну за исключением смены ip, но как я уже писал — проблема проявлялась далеко не на всех сайтах, а, в частности, на файлообменниках и еще некоторых.
больше всего я ненавижу в гугловской капче то, что для некоторых сайтов (видимо, где капча показывается чаще обычного) гугл начинает принудительно показывать эти картинки с мееедленным их исчезновением по клику. Причем чем более популярен сайт — тем оно медленнее работает. У меня на некоторых сайтах доходило до 3 и более минут на разгадывание капчи! Т.е. ткнул — ждешь секунд 20 пока картинка поменяется, ткнул — ждешь… Причем нет вообще никакого вменяемого способа решить эту проблему — тех поддержки не существует, куда-то жаловаться бесполезно.

Самое веселое, когда на сайте все формы восстановления пароля закрыты такой тормозящей капчей, т.е. тебе надо в процессе восстановления разгадать их штуки 4 — и на каждую по пять минут… Это жесть)
Меня вот интересует такой вопрос… Новости про запуск ICQ New — примерно неделя. Откуда минздрав узнал о поддержке ботов, как успел провести через госзакупки и написать своего бота за эту неделю?
Вам не кажется, что тут уже должны прям рядом ФАС и прокуратура уже стоять, проверять?
у гугла был помимо продаваемых серверов еще Google Desktop. Он как раз делал то, что мне нужно. Но они его еще лет 10 назад закрыли, а на десятке он в принципе процесс индексирования не запускает, как обойти ошибку — я так и не нашел.\

И яндекс, как обычно, тоже обезьянничал Yandex Desktop был — и тоже закрыто давно.
м… Найти точное вхождение строки символов в файле — не проблема вообще, с этим справляется куча софта. Проблемы начинаются, когда хочется найти в файлах с особым форматом (например, с html-тегами, причем часть нужной фразы может быть разбито этими самыми тегами). Или когда надо найти нечто не совсем определенное — ну т.е. когда надо именно нечеткий поиск, с учетом склонения слов и т.п. вещей, то, что сейчас легко делают онлайн-поисковики.
Индексация тут просто ускоряет процесс, я, в принципе, готов и подождать с поиском без индексации, лишь бы он находил нужное. Но…

Вот есть у меня папка с 30+ гб книжек в форматах epub и pdf, я хочу просто там найти книгу на определенную тематику, например. Причем заранее я ни автора, ни название не знаю, естественно. Набираешь определенные фразы, которые заведомо есть в книгах нужного жанра — и дальше уже по найденному выбираешь что почитать. Ну, это как пример. Точно так же можно сохраненные статьи/документы перебирать, в принципе
Ну я как не гуглил — в итоге для оффлайн поиска по текстам просто нет софта. Упоминаемый выше Everything тоже заточен больше под поиск по именам файлов, а не по содержимому. И в целом то, что есть, в основном заточено под поиск со 100% совпадением поискового запроса с содержимым файла, а не под то, как ищут поисковики, с контекстным поиском и всяким таким.
В десятке поиск вообще офигенный: если искать через поисковую панель (где кортана рядом с пуском), то оно даже из индексируемых папок выдает десяток вариантов и на этом все, хочешь больше — ищи через проводник, а он выдает такую же фигню неюзабельную.
Т.е. вот как гугл свой оффлайн-поиск закрыл, так на этом и всё — поиск на компе закончился в принципе. Печально это…
Вот сейчас идет 2020 год и вообще нет нормального софта для поиска по содержимому документов. Т.е. для поиска файлов есть куча всякого, а вот для поиска по нечетким запросам да по содержимому — практически весь софт или уже не работает (закрыт) или давно не обновлялся.

Я вот еще помню оффлайн-поисковики от гугла и яндекса… Они, кстати, вообще не работают больше, даже если таки найти старый инсталлятор. А аналогов так и нет никаких, фактически я нашел только (тоже не сильно новый) DocFetcher и всё.
Без виндового сервиса вы не сможете получить существенную информацию для плиток. Т.е. да, плитку сделать — не проблема. Но если вам нужен доступ к данным, к которым UWP вас не пускает — например, к отдельной папке с картинками или собрать ту же информацию о температуре с датчиков — то без сервиса вы к этому всему добраться не сможете, если, конечно, хотите отображать изменения на плитке, а не показывать там статичную картинку
Плитки (и приложения под магазин МС) не взлетели именно потому, что реализовано это всё предельно извращенным способом. Мне постоянно вспоминается анекдот:
Как бы я хотел встретиться с разработчиками, пожать им щупальца, заглянуть в их гениальные фасеточные глаза.


Просто зацените всю гениальность конструкции:
1. вам нужно создать и зарегистрировать виндовый сервис (а то 100500 уже существующих и запускающихся сервисов по-умолчанию маловато, да)
2. этот сервис должен отправить данные для плитки на сервер майкрософта
3. сервис от майкрософта раз в какой-то период придет за этими данными на сервер майкрософта и заберет ваши данные от вашего сервиса
4. ура, у нас обновился контент плитки

Я даже не буду говорить о том, что без нормального интернета вся эта схема начнет постоянно сбоить. Вы просто представьте себе сколько оно теряет ресурсов железа и сети в процессе работы!

А если ко всему этому еще и добавить предельно кастрированный функционал…

Я вот лично вообще не удивлен, что в итоге плитки и магазин так и не взлетели
У меня вопрос не совсем по теме, но может вы знаете? Как китайцы ухитряются читать иероглифы на смартфонах? Т.е. я о том, что есть куча реально сложных иероглифов, с кучей палочек, причем бывают еще и достаточно похожие, но разные (и тоже с кучей палочек). Ладно, часть иероглифов — ходовые, часть по смыслу понятны сразу, часть вообще обязательные и не требуют толкования (как de и вопросительный иероглиф). Но остальные-то? Их же даже на десктопе нормально не разглядеть, мне масштаб приходится менять, а в приложениях на мобильных масштаб далеко не везде поменять можно.
А если еще вспомнить о том, что иероглифов много, каждый является самостоятельной сущностью и по внешнему виду понять что он значит — нельзя, то возникает и второй вопрос: как китайцы вообще разбираются, например, в новых программах, в которых используются новые (для конкретного китайца) слова? Ведь иероглифы (или их комбинация), очевидно, неизвестны, на произношение по внешнему виду их тоже не перевести (ну чтобы «услышать» слово — может ты его и знаешь давно, просто не видел никогда как пишется).

Вот я потихоньку тыкаюсь в китайский (интересно) — и у меня много вопросов, как они вообще читать ухитряются :)
лично мне очень помогают RedirectPath (когда на очередном сайте сеошники хотят странного и надо редиректы настраивать/проверять) и Visual Event, чтобы отлаживать/чинить сайты, которые активно используют jquery.
«если нельзя, но очень хочется — то можно» (с)

Кто-то там недавно возмущался, что распознавание лиц с камер в метро будет нарушать законы? Нет проблем!

Информация

В рейтинге
1 169-й
Откуда
Тамбов, Тамбовская обл., Россия
Дата рождения
Зарегистрирован
Активность