Как стать автором
Обновить
1
0
Дмитрий Колчев @ideatum

Разработка и проектирование

Отправить сообщение
В моем случае, повторная перезагрузка системы вернула доступ к профилю. Перезагрузка после установки обновления, действительно, приводила к сообщению об использовании временного профиля ввиду недоступности постоянного, что конечно напрягло…
Отличная точность до 9-го знака, при опросе 15-ти аналитиков ;) Я не понимаю, можно ли доверять таким результатам. imho итоги из разряда «мы за все хорошее», т.е. опрос можно было бы и не проводить.
на роль этих фигур подойдут треугольники, прямоугольники и шестиугольники

Не совсем по теме статьи, но плоскость можно замостить не только треугольниками, прямоугольниками и шестиугольниками. Очевидно, что на эту роль хорошо подходят и параллелограммы, а также не совсем очевидным способом подходят «несколько» видов выпуклых четырехугольников и пятиугольников. В общем, задачу давно решают геометры и они неплохо продвинулись в этом плане. Кому интересно, начать можно в вики Замощение (геометрия)
Зная структуру (memory layout) массива, можно посмотреть здесь, в общем понятно, что смысла сохранять длину массива в локальную переменную смысла не имеет и обращение к Length хорошо оптимизированно. imho на мой взгляд более интересным вопросом является, каким образом стоит обращаться со свойством коллекций Count.
Вы удивитесь, но проверка границ массива практически не влияет на производительность. Современные процессоры умеют делать это очень эффективно, так что время доступа к элементу массива с проверкой границ увеличивается всего на (0.881 ± 0.009) %
Более подробно здесь
Я уже показал, что проще ничего быть не может, но вскоре установил, что этой единственной небольшой аксиомы было достаточно, чтобы создать всю логику…
Откуда мне было знать, что она верна? Потому что я заставил компьютер доказать её.


Аксио́ма (др.-греч. ἀξίωμα «утверждение, положение») или постула́т — исходное положение какой-либо теории, принимаемое в рамках данной теории истинным без требования доказательства и используемое при доказательстве других её положений, которые, в свою очередь, называются теоремами.

Сложно читать статью, которая imho начинается с бреда. Или это трудности перевода?
Уже более 2-х лет существует .Net Core, работающий под Linix, MacOS и Windows.
.net core sdk
для любителей собрать самостоятельно
Округление используется не только при операциях с плавающей запятой. В финансовой сфере все-таки иногда приходится делить, но чаще всего банки взымают проценты за операции с деньгами, но меньше копейки/цента взять с клиента не могут, поэтому округлять и приходится. Например, вы хотите перевести 1.50, банк за операцию берет 3%, т.е. 0.045, но 0.5 копейки/цента взять не в состоянии, поэтому округляет. По математическим правилам округлит до 0.05, по банковским до 0.04

Если сумма будет 1.17 то комиссия и по математическим и банковским правилам составит 0.04 (точное значение 0.0351)
В последствии Dekker показал, что если используются числа с плавающей запятой, использующие округление к ближайшему нечетному числу

Вероятно, имелось ввиду округление до ближайшего четного, этот способ еще называют банковским округлением, из-за того что этим способом принято округлять в банках :)
обертка над с++ библиотекой сетевого i\o
Небольшое уточнение, в .Net Core 2.1 Kestrel по умолчанию использует управляемые сокеты (managed sockets), libuv также можно использовать, установив ссылку на Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv тынц
А ведь в Джаве вместо списка можно было положить туда массив и существенно сэкономить память и немного увеличить скорость.
В текущей реализации используется именно список. Массив бы ничего не сэкономил, а ровно наоборот, попробуйте реализовать свою версию, поймете.
Очередь или стек это структуры где нет вставки в середине. Тут массив просто великолепен.
Особенно при вставке в начало ;). Да, при реализациях стека/очереди используют именно массив для организации циклического буфера с указателями на начало и конец элементов в буфере.
Джавовская реализация LinkedList жрёт раз в 6 больше памяти чем ArrayList и сборщик мусора вынужден бегать по всем узлам LinkedList. Вот поэтому её и не применяют особенно. А работать с узлом списка можно с помощью итераторов.
Хорошо что в java нет типов с семантикой значения, поскольку для связанных списков конечно же лучше подходят большие структуры данных, в случае использования массивов таких структур затраты на копирования убили бы производительность. Со ссылочными типами все несколько проще, потому в java LinkedList совсем непопулярен.
B Java тоже можно вставить куда угодно в любой момент.
Если я не ошибаюсь, в текущей реализации вставка add(int index, T element) связана с поиском, а это O(n)
Если говорить безотносительно java, в реальном мире есть несколько применений связанных списков (linked list), первое что приходит в голову, например, реализация malloc в C, в который выделяет блоки памяти различного размера и организованы они в виде связанного списка. Второе, это хэш-таблицы, у которой в случае коллизий элементы объединяют в связанный список, кроме этого при помощи связанного списка достаточно просто реализуется очередь или стек. В действительности джавовская реализация LinkedList имеет очень ограниченное применение из-за того, что нет возможности работать с узлом списка (ListNode). Например, в .net вставка/удаление может производиться не только в голову или хвост, но и перед/после любого узла (node) списка, что несколько расширяет возможности использования связанных списков.
Работа GC обычно разбита на несколько этапов:
  1. Помечает недоступные объекты (marking)
  2. Удаление помеченных объектов (deletion)
  3. Уплотнение кучи (heap compaction)

на все это необходимы определенные процессорные ресурсы и желательно отсутствие закрепленных (pinned) объектов. При любом подходе к управлению памятью следует избегать ненужных операций выделения памяти, за это придется рано или поздно заплатить. Просто наличие GC скрывает много важных деталей, ну и в конечном итоге позволяет среднему программисту относительно качественно управлять памятью, т.е. не задумываться об этом
Очевидно, что LinkedList имеет дополнительные накладные расходы по памяти, на хранение ссылок на следующий/предыдущий элемент. Выбор в пользу LinkedList очевиден, когда в коде используются частые операции вставки/удаления. Сложность вставки в случае LinkedList константная, а случае динамического массива пропорциональна количеству элементов массива, но в этой статье ничего не говорится об алгоритмической сложности методов работы с «коллекциями». Память очень важный критерий, но далеко не первый при выборе структуры данных.
Не хотелось бы спорить, но есть различные варианты реализации I/O:
  1. Memory-mapped I/O (MMIO)
  2. Port-mapped I/O (PMIO)

В современных компьютерах используются и тот и другой варианты. Самый известный вариант использования MMIO в PC это непосредственный вывод информации в видео память. Для этого не используются инструкции IN/OUT, а используются обычные инструкции MOV. При этом в 32-х разрядный системах когда установлено 4GB RAM (максимум адресуемой памяти в 32-х битных ОС), адресное пространство устройства приходится отображать на уже «занятое» RAM адресное пространство. Поэтому всякие проверяльщики памяти обязаны с должным почтением обходить регионы занятые устройствами. Более подробно можно почитать в Memory-mapped I/O, либо в Intel 64 and IA-32 Architectures Software Developer's Manual Volume 3A: System Programming Guide, Part 1
Попробую начать сначала.
const — псевдоним литерала, т.е. используя псевдоним вы реально используете литерал. Например,
const a = "Hello";
string b = a;

является аналогом
string b = "Hello";

readonly — объявлет переменную и в этом принципиальная разница с const. Из-за этой разницы не рекомендуется использовать публичные (public) константы, т.к. при изменении значения публичной константы, необходимо перекомпилировать все сборки, которые эту константу использовали. Если этого не сделать, то часть модулей будет использовать старое значение, а перекомпилированные модули будут использовать уже новое. Отличный способ нарваться на проблемы. readonly поля такой особенностью не обладают, т.к. для них выделяется необходимая область памяти и уже туда кладется значение или ссылка.
Что касается интерполяции строк, то это синтаксический сахар для замены не самого удобного в использовании string.Format. Как я уже написал ранее const это псевдоним литерала, а вызов string.Format не является литералом, т.к. результат можно получить только во время выполнения и он зависит, например, от региональных настроек системы.
Занятно то, что критерий Поппера (научная теория должна быть потенциально опровергаемой/фальсифицируемой) вообще не упомянут. Полагаю, что это основной критерий научности любой теории.
Вы кажется, что-то напутали. Наша лаборатория (МГУ) в 1987 году приобрела IBM PS 2/50 (i286) c двумя мегабайтами оперативной памяти, а вот 1990 я свою дипломную работу уже считал на i386 компании Диалог (была кажется такая) и тогда для меня чудом был 32-битный Phar Lap Fortran.
За XT в 91 я бы тоже ненавидел своего завлаба.
Наверное, имеет смысл отметить, что процедура xp_cmdshell по умолчанию отключена в Microsoft SQL Server, по соображениям безопасности.

xp_cmdshell Server Configuration Option
Вообще-то последняя, Microsoft Visual Studio 2015 Isolated Shell ;)

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность