А можно про утечки памяти подробнее? А то пацаны-то не знают, у нас системы на ноде работают месяцами и как-то с ними всё хорошо. Вы имеете в виду, что есть утечки в движке/системных библиотеках, или же просто очень легко захватить объект, который не нужен, но завис в каком-нить глобальном кеше.
В статью добавлять пока не буду — потому что не понимаю трейдофф от компиляции через Reflection.Emit.
Быстрее. Как пример, клонятор использует Reflection.Emit, когда возможно и заваливается на ExpressionTree, если не получается. Код по идее идентичен, но на экспрешшенах тупо медленнее. Или же где-то есть ошибка, или же особенность задачи приводит к разным операциям, но в целом голый il код получается производительнее.
PS: А вообще, Jil делает очень упоротые оптимизации в плане сериализации данных в строку, так что он ещё там может выигрывать.
Всё-таки данный браузер отличный продолжатель дела классической оперы. Падает отлично. Вначале я боялся открывать приватные окна (закрытие приводило к крешу), потом были просто безумные утечки памяти (ну и креш по Out of Memory) потом девтулзы (написали, что наконец, починили), теперь ещё закрытие вкладки мышиным жестом приводит к эпичному рестарту браузера с перемешиванием всех вкладок.
До кучи в последних версиях сломали открытие ссылок из внешних приложений, теперь могут открыться в любом табе, а не последнем.
Неужели так тяжело без постоянных регрессов жить? Хороший же браузер, удобный, но пользоваться последнее время очень неудобно.
На мой взгляд, генераторы, это самая странная фича ES6. Т.е. она логичная и полезная, yield иногда нужен, но иногда, это пару раз в год… Т.е. достаточно странный синтаксис (звёздочка в функции, всё время забываю куда её правильно ставить, ключевое слово yield или yield return?, соглашения на имена next и value) и ради того, чтобы возвращать итерируемые объекты.
При этом, на самом деле, все любители извращений тайно потирали руки и ждали реализации генераторов ради того, чтобы костылить на них эмуляцию async/await. И сразу после появления сделали пачку библиотек, которые это делают. Получается, возможность генераторов изначально все планировали использовать не по назначению.
Другими словами, добавили фичу, которую все используют для других целей. Может быть стоило сразу использовать async/await и забить на эти генераторы?
Вроде тут нормально решается, улица Волжская набережная. улица Проспект Ленина Во всяком случае, в куче бумажных бланков ул. прибита гвоздями, и все как-то жили и живут.
Забавная математика:
1. Роуминг для абонентов стоит дорого
2. Роуминг приносит оператору 1.5% дохода
Уберём роуминг — оператор потеряет 1.5% дохода. Логично, но по факту, если звонок стоит 10 рублей, и из них 15 копеек идут оператору в доход, то сделаем звонок в условный рубль и получим -8.85 рублей. Вот на эти 1.5% цены и подорожают.
Вообще, использовать этот алгоритм можно для реализации различных SortedList, когда данные добавляются и удаляются и каждый раз перестраивать массив накладно, поэтому нужны специальные дырки для заполнения.
Правда, имхо, гораздо более эффективно в этом случае использовать B-Tree
Если взять пиво, которое сейчас из 0.5 превратилось в 0.45 (что, блин, совсем раздражает, ибо продукт явно не первой необходимости, и гораздо больше на цену влияет марка пива, а не ёмкость), то там ёмкость теперь мелким шрифтом на блестящей этикетке сзади где-то между составом и адресом производителя.
У меня в одном из приложений понадобился доступ к телефону для возможности нормально определить сам факт звонка (уже не помню для чего, то ли на паузу корректно поставиться, то ли нотификацию какую-то поставить). Я был бы рад уменьшить себе права (вообще не интересно, кто и кому звонит), но нельзя.
На самом деле, буквально пару месяцев назад код разблокировки получался очень просто. Но потом они решили всё переделать, и теперь уже танцы с бубном. Возможно скоро вернут назад, а возможно, что и нет, ибо слишком большое количество пользователей умудряются себя окирпичивать, нарушая всё что только можно.
Есть статистика, что преступники оценивают тяжесть своих преступлений в соответствии и наказанием. Т.е. вор, обкрадывающий квартиры, когда хозяев нет не занимается грабежом не потому что он такой «правильный», а потому что знает, что в этом случае ему гораздо больше светит.
Обратный эффект этого, что человек, который уже совершил преступлений на высшую меру, понимает, что больше терять нечего и начинает творить непотребства.
Так что, публичная демонстрация вполне может остановить некоторых преступников от перехода на следующий уровень насилия.
пацаны-то не знают, у нас системы на ноде работают месяцами и как-то с ними всё хорошо. Вы имеете в виду, что есть утечки в движке/системных библиотеках, или же просто очень легко захватить объект, который не нужен, но завис в каком-нить глобальном кеше.Быстрее. Как пример, клонятор использует Reflection.Emit, когда возможно и заваливается на ExpressionTree, если не получается. Код по идее идентичен, но на экспрешшенах тупо медленнее. Или же где-то есть ошибка, или же особенность задачи приводит к разным операциям, но в целом голый il код получается производительнее.
PS: А вообще, Jil делает очень упоротые оптимизации в плане сериализации данных в строку, так что он ещё там может выигрывать.
До кучи в последних версиях сломали открытие ссылок из внешних приложений, теперь могут открыться в любом табе, а не последнем.
Неужели так тяжело без постоянных регрессов жить? Хороший же браузер, удобный, но пользоваться последнее время очень неудобно.
При этом, на самом деле, все любители извращений тайно потирали руки и ждали реализации генераторов ради того, чтобы костылить на них эмуляцию async/await. И сразу после появления сделали пачку библиотек, которые это делают. Получается, возможность генераторов изначально все планировали использовать не по назначению.
Другими словами, добавили фичу, которую все используют для других целей. Может быть стоило сразу использовать async/await и забить на эти генераторы?
1. Роуминг для абонентов стоит дорого
2. Роуминг приносит оператору 1.5% дохода
Уберём роуминг — оператор потеряет 1.5% дохода. Логично, но по факту, если звонок стоит 10 рублей, и из них 15 копеек идут оператору в доход, то сделаем звонок в условный рубль и получим -8.85 рублей. Вот на эти 1.5% цены и подорожают.
Правда, имхо, гораздо более эффективно в этом случае использовать B-Tree
Тогда это получаются уже пытки. А пытки, как бы запрещены в приличном обществе.
Обратный эффект этого, что человек, который уже совершил преступлений на высшую меру, понимает, что больше терять нечего и начинает творить непотребства.
Так что, публичная демонстрация вполне может остановить некоторых преступников от перехода на следующий уровень насилия.