Быстрее чем сигвин - да. Но не фантан. Софт собранный с помощью msys/mingw работает раза в 2 медленнее, чем он же, собранный VS. Толи gcc плохо оптимизирует, то ли стандартная библиотека в mingw/gcc такая тормознутая.
Ну скриптом это называть "рука не поднимается".
А что бы вы хотели?
Чтоб программа прочитала ваши мысли и сделала вам хорошо? - пожалуй это из другой оперы.
В netsh есть команда dump - она выдает текущий конфигурационный скрипт. Настраиваете руками конфигурацию, затем выполняете netsh dump >config1.txt и т.д. для всех нужных конфигураций.
Когда нужно сменить конфигурацию выдаете:
netsh -f config1.txt
Доступ имеет не профиль, а пользователь, поэтому иметь будет. Пользователя вы ведь удалять не будете.
И не удаляйте, а переместите или переименуйте, чтобы иметь возможность скопировать информацию в новый профиль.
Не знаю как в доменной среде, а в локальных виндах для того что бы винда поняла что профиля нет нужно удалить раздел в реестре: HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList\
описывающий расположение пользовательского профиля.
Евгений Самсонов: кстати, по поводу внедренной убунты: я че-то не разобрался как из нее попадать во внешний мир, например прочитать/записать файл, который будет виден в винде. Наверное плохо искал, но это из-за того, что уже давненько плотно сижу на msys и подобных заморочек там просто нет.
Святослав: дык ИДЕ упала - файл освободился, значит его можно удалить.
Если файл не освободился, значит процесс ИДЕ все еще висит в памяти и держит его, убейте процесс и удаляйте файл.
В вашей задаче нет более широкого смысла - каждый конкретный случай имеет свои собственные оптимизации, которые не подходят к другим вариантам.
Например про парсер ЯП, то числовые константы, обычно, восьмеричные начинаются на 0, шестнадцатиричные на 0x, остальные десятичные. Таким образом в простейшем случае достаточно проанализировать первые 2 цифры константы и т.д. И эта оптимизации для других примеров не подойдет.
Поэтому пока вы не дадите более полную вводную никто никаких оптимизаций вам не предложит.
Как минимум, потому что это разные сущности и для операций с каждой из них серверу нужно выделить какое-то количество памяти.
Подобное выделение имеет смысл, если количество операций с двумя базами одновременно не большое.
Вообще, в корпоративных базах данных несколько сотен (а то и тысяч) таблиц это нормальное явление.
Если нужно увеличить производительность, то для этого есть другие способы:
1. стандартные: индексация таблиц, дефрагментация индексов, обновление статистики.
2.если не хватает стандартных способов: отделение физического расположения журнального файла от файла базы данных, перемещение наиболее часто используемых таблиц в отдельную storage group и помещение этой группы на более быстрые диски (SSD).
На самом деле, выделение таблиц в отдельную базу данных вам вряд ли даст вообще какое-то ощутимое изменение в быстродействии сервера БД. Поскольку накладные расходы на работу с двумя базами, конечно больше, но не настолько критично, чтоб это сказывалось на производительности.
Да, иногда для разблокировки занятого неизвестно чем файла нужно и ОСь перезагружать, но это редко.
Многие IDE позволяют удалять файлы прямо из собственного интерфейса, в других можно удалить файл из проекта не удаляя его из файловой системы, а потом руками удалить файл из ФС.
Если ваша ИДЕ не умеет ни того ни другого, то не нужный файл после закрытия его в ИДЕ и удаления из проекта можно перенести в другой каталог и потом, когда сама ИДЕ будет закрыта, удалить файл. Так же можно поставить скрипт в шедулер или в автозагрузку, удаляющий все файлы из заданного каталога, тогда после переноса можно не заботится об удалении файла - сам со временем удалится.
Кстати, чем-то подобным страдает Adobe Reader - пока не закроешь сам ридер нельзя удалить ранее открытый и закрытый файл.
Так же можно вычислять размер достаточного буфера, вызвав sprintf с первым параметром NULL, тогда она не будет никаких действий производить, но вернет вычисленный размер буфера. Потом выделяете этот объем памяти и заполняете его как обычно.
Но в целом, проще так как показал Mercury13
Согласен, поле состояния лишнее - сортируйте вывод по дате от больших к меньшим и берите первую запись - это будет актуальный пост, все остальные - история изменений.
Abdula Magomedov: В этом случае описанный вами 1 вариант вполне подходит. Дополнительно нужно предусмотреть проверки для случаев, которые вы сами и описываете. Этого не избежать, если выдвигаются подобные требования.
А в варианте с "виртуальными контейнерами" я вообще не понял о чем речь. Слово "виртуальный" когда дело доходит до конкретики вносит какую-то неопределенность :)
Mohn: Это обычное поведение Windows, никакими настройками это не лечится. Поэтому ищите другой выход. Обычный подход, как и предложил atmid , копировать с последующим удалением.
Добавлю от себя: внутри сети ходите по локальным адресам, из вне - по внешним. Это нормально. Так же как иметь разные DNS сервера для локальной сети и для внешней.