Pull to refresh
31
0

Senior .Net Developer

Send message
1. Цитата из моего комментария «если скомпилировать в Release следующий код». Само собой, что в DEBUG и под отладкой цифры совсем другие.
2. Внимательнее посмотрите код циклов — они все 3 разные.
2.1 Цикл for от 0 до array.Lenght
2.2 Цикл foreach по элементам array
2.3 Цикл for от 0 до значения локальной переменной, в которую предварительно записали значение array.Lenght

а Выше показан результат декомпиляции 1 foreach и двух идентичных циклов for
Тесты, приведенные выше, показали — если сохранить длину массива в переменную и использовать в цикле for значение переменной, а не array.Lenght, то такой код стабильно на 3% быстрее. Мелочь, но всё же…
Да и как это, спрашивается, for не будет каждый раз дергать — попробуйте в цикле поменять значение второй переменной из цикла for — на каждом цикле значение этой переменной вычисляется заново.
Подозреваю что там всё хитро. Не влезая в IL провел несколько тестов производительности For и Foreach.
Оказалось следующее: если скомпилировать в Release следующий код:
int s = 0;
for (int z1 = 0; z1 < array.Lenght; z1++)
{
	s += array[z1];
}
и
foreach (var i in array)
{
	s += i;
}

то время выполнения идентично (гуляет на 0.3%).

если же написать так:

int c = array.Length;
for (int z1 = 0; z1 < c; z1++)
{
	s += array[z1];
}

то код стабильно выполняется быстрее, чем foreach, где-то на 3%.
Ну здесь же речь о терминологии, а не о русском языке. И на специализированном сайте это весьма актуальная проблема.
Ничего личного против автора не имею, сама статья дала пищу для размышлений.
Меня тоже немного покоробило.
У нас для интерфейсов используется «Реализация», для Generic — «Обобщенные» или «Типизированные».

P.S.:
К нам пришел новый тестировщик, и каждый раз когда он говорит что-то вроде «Бага репродьюсится» — так и хочется запустить в него чем-нибудь тяжелым.
Видимо было хорошо скручено и не было большой нагрузки.
Лично меня к замене всей проводки по квартире побудило 2 причины — абсолютно неприемлемое сечение провода от щитка в квартиру, и результаты вскрытия двух розеток. В розетках была скрутка многожильной меди на одножильный алюминий под синей изолентой. В розетки втыкалось всякое — от миксера до кофеварки. Синяя изолента оплавилась, скрутка имела явные признаки окисления. Жило это чудо около трех лет, как не коротнуло — думаю просто повезло.
Да, это одна из тех статей затрат, на которых экономить — себе дороже выйдет. У меня при ремонте минимум 40% времени было убито именно на монтаж щитка, проводки, освещения и т.д., и по деньгам тоже нормально вышло, но в итоге я за свою проводку спокоен.
Самое важное что каждая линия независима, и если, к примеру, нужно поковыряться в розетке на кухне, то этим можно спокойно заниматься при включенной люстре, и при этом комп в спальне выключать не придется. Ну и на случай КЗ (тьфу-тьфу-тьфу) с очень большой вероятностью пострадает только одна линия. Всего этого можно добиться если тянуть каждый провод от щитка, а не делать разводку от общей линии. Так, конечно, дороже, но и намного надежнее.
Почитайте на тематических форумах.
Основные правила просты и очевидны — под каждое применение нужен тот тип провода, который для этого предназначен. Есть марки, предназначенные для временной проводки и подключения конечных потребителей, а есть специальные для прокладки стационарной проводки — у них и изоляция правильная, и ресурс повышенный. Тема слишком обширна, чтобы раскрыть ее здесь, к тому же она очень широко освещена в сети, достаточно поискать.
Важно соблюдать стандарты сечения провода под нагрузку.
Очень важно согласовать сечение с автоматом защиты, чтобы автомат гарантированно успел сработать до того, как начнет плавиться проводка. Именно поэтому, кстати, не стоит ставить один автомат на 60 ампер и разводить от него десяток проводов малого сечения.
Сильно советую поставить УЗО.

Что насчет конкретных марок — зависит от вашего региона. Я брал провод одесского завода — отличный провод с честным сечением. Взял немного китайского провода на 2.5 мм2, и когда начал визуально оценивать площадь сечения, то оказалось что он очень близок к 1.5 мм2 одесского. В итоге пустил этот кусок на лампочки.
С чего бы это вдруг паянной скрутке греться? Если скрутка нормально пропаяна, то вплоть до допустимых для данного сечения токов она греться не будет ни в коем случае. А если будет превышен ток, то греться будет весь провод, и вряд ли скрутка станет самым слабым местом — уж скорее где-нибудь в самом проводе жилы через оплавленную проводку соприкоснутся.
А насчет потекшего припоя — это, опять же, смотря кто паять будет. Если олова на спайке ровно столько, сколько нужно — никогда он не потечет, так как там поверхностное натяжение огромное, это нужно молотком по проводу долбить. Плюс ко всему — олово под изоляцией.
В общем на правду сильно не похоже.
Энергию в проводнике переносит электромагнитное поле.
Кстати о витухе — полгода назад растягивал по квартире. Два раза покупал провод (немного не хватило), и второй раз взял подешевле, что-то китайское. Сейчас на том проводе, который подешевле бело-цветные жилы стали чисто белыми, цветные полоски исчезли без следа. Так что имейте в виду. Работают (при небольшой длине провода) они одинаково, но вот такие мелочи могут создать большие проблемы впоследствии. Переобжать коннектор будет сложно. И если вдруг потребовалось переобжать — не спешите обрезать старый. Снимите немного изоляции с провода до коннектора и проверьте наличие полосок. Если их нет — обязательно нужно иметь в виду и каким-нибудь образом зафиксировать правильную последовательность жил. Спасти может то, что бело-цветные жилы свиты с цветными по стандарту, и по свитой цветной можно определить бело-цветную.
Совсем недавно переделывал проводку по квартире. Итак:
1. Никакого алюминия. После строителей оказалось, что вся квартира висит на трехжильной алюминиевой лапше 2.5 мм2, а на комнаты расходится полторашка. Увидел — и глазам не поверил. Заменил всю проводку от самого щитка, в квартиру завел 6мм2 одножильной меди.
2. Для основных силовых линий — одножильный медный провод.
3. Каждой комнате — по 2 личных провода от щитка — освещение + розетки. Провод на комнаты расходится в пластиковых трубах, по одному проводу на трубу. Трубы спрятаны в гипсокартонный потолок — очень удобно — никаких штроб, только дырки там, где проводка проходит сквозь стену.
4. Все основные соединения до потребителей — скрутка + пайка + термоусадка + изолента. Паранойя, но слышал, будто термоусадка рассыпается через пару лет. Правда или нет — не знаю, но изолента никогда не помешает.
5. По комнате расходится уже многожильный провод — с ним удобнее работать на конечных точках. На конце — обжимка в оконечники, иногда обпаивал и превращал многожильный в одножильный.
6. Переходники и клеммники использовал только для временных соединений — там, где нужно было соединить еще не переделанную старую проводку с новой. По мере продвижения все клеммники меняются на скрутку + пайку.

Инструменты:
1. Паяльник на 60 ватт.
2. Хитрая штуковина для зачистки изоляции — всунул провод, зажал ручки как плоскогубцы и девайс сам обрезает изоляцию, а при разжатии снимает ее с провода. Стоят ерунду (до $10), но сэкономили огромное количество времени.

3. Строительный фен для термоусадки.
4. Всякая обычная мелочь типа плоскогубцев.
Я в последнее время использую очень простые иконки, и та же Metro Studio от SyncFusion — тому хороший пример. Понятно, что не стоит использовать полноцветные векторные копии обычных иконок, смысла большого не имеет. Ну а что насчет интерполяции — если с искажениями при изменении размеров иконки с нею еще можно мириться, то при эффектах покачивания или перспективы искажения уже критичны.
Расскажу зачем нужны расширения файлов. Тоже не видел особой необходимости, но включал, так, на всякий случай. Пока однажды мне не принесли флешку с фотками, на которой был exe-шник, у которого была иконка в виде папки. Понятное дело что экзешник был вирусом. С тех пор в первую очередь включаю эту опцию сразу после установки системы.
Очень впечатляет.
Тем не менее даже такое видео не дает понять реальной скорости боллида.
Понять это можно лишь когда эта ракета пролетает мимо. Не успеваешь и глазом моргнуть, а его уже и нет.
Для тех кто не смотрел код этого решения.
Автор поспешил и по сути повторил промежуточный шаг из статьи. С помощью этого кода можно получить только вот такую картинку (из статьи):

А указать разные иконки для кнопок таким способом невозможно, так как иконка задана прямо в шаблоне.
Спасибо за дельное замечание. Кнопка в кнопке — это, конечно же, та еще экзотика но по существу так чище.
Достойный вариант номер 5.
Ну проблема в общем-то проста и стандартна, не думал что стоит ее описывать:
— написать приложение, в котором присутствуют кнопки с иконками;
— стили для контролов приложения должны задаваться через шаблоны, не более одного шаблона для контрола каждого типа;
— в зависимости от функции кнопки (тулбар, диалоговая кнопка и т.д.) текст может располагаться как под иконкой, так и сбоку, а сами иконки могут быть разных размеров;
— минимизировать количество кода, описывающего конкретную кнопку, чтобы не раздувать XAML формы.
Зачем воротить лишний код, если поведение состояний — это одна из базовых функций шаблона.

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Registered
Activity