- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
<?php
class Pet {
protected $name;
public function __construct($name) {
echo "Setting name to " . $name . "\n";
$this->name = $name;
}
public function eat() {
echo $this->name . " is eating.\n";
}
}
$var = 30;
$a_pet = new Pet("Spike");
$a_pet->eat();
?>
---
<?php
function Pet__construct(&$objInst, $name)
{
echo 'Setting name to ' . $name . '
';
$objInst['name'] = $name;
}
function Pet_eat(&$objInst)
{
echo $objInst['name'] . ' is eating.
';
}
$Pet = array('__vars' => array('name' => null));
$var = 30;
$a_pet = array_merge($Pet['__vars'], array('__type' => 'Pet'));
Pet__construct($a_pet, 'Spike');
Pet_eat($a_pet);
Конвертер из ООП в процедурный стиль.
Make PHP great again.
https://github.com/PatrickZurekUIC/PHP-OOP-Converter
Steve_Brown 05.03.2020 12:53 # 0
А интересно, этому есть реальный пример применения (для совместимости, например), или это потому что могу?
alucas 05.03.2020 15:32 # +1
OPAHrymaH 05.03.2020 17:59 # +1
А если серьёзно, то тут какая-то переголова: мы создаём ненужный экземпляр $Pet в качестве рыбы, и при создании нужных экземпляров копируем его (точнее, мержим с новыми данными). В случае, если нам нужен синглтон, у нас будет два экземпляра вместо одного. Пахнет прототипным программированием из жопоскрипта.
guest8 05.03.2020 18:01 # −999
OPAHrymaH 05.03.2020 18:09 # 0
А в «PHP» даже обычные функции ищутся в глобальной таблице функций по имени. Так что в «PHP» можно не думать о способах вызова подпрограмм, потому что всегда будет хуёво.
>> и на шарпе
Интересно. Следует ли из этого, что кишки ООП в «C#» и в «Java» устроены по-разному? Какие принципиальные различия ООП в этих языках?
guest8 05.03.2020 18:11 # −999
guest8 05.03.2020 18:18 # −999
Fike 05.03.2020 18:28 # +2
guest8 05.03.2020 18:30 # −999
Fike 05.03.2020 18:34 # +1
guest8 05.03.2020 18:39 # −999
Fike 05.03.2020 18:41 # +1
guest8 05.03.2020 18:44 # −999
OPAHrymaH 05.03.2020 18:59 # 0
gost 05.03.2020 18:30 # +1
https://docs.oracle.com/javase/specs/jvms/se13/html/index.html
Но жабоёбы соснули, да.
UPD: ораклы охуели, новая спека «Access Denied» выкидывает. Пидорасы.
https://docs.oracle.com/javase/specs/jvms/se11/html/jvms-4.html#jvms-4.10.1.9.invokedynamic
guest8 05.03.2020 18:32 # −999
gost 05.03.2020 18:37 # 0
Fike 05.03.2020 18:39 # +1
> The difference between the invokespecial and the invokevirtual instructions is that
> invokevirtual invokes method based on the class of the object. The invokespecial
> instruction is used to invoke instance initialization methods as well as private
> methods and methods of a superclass of the current class.
другими словами, invokespecial как раз-таки вызывает методы без динамического биндинга. Какая компиляция )))
guest8 05.03.2020 18:40 # −999
Fike 05.03.2020 18:43 # 0
guest8 05.03.2020 18:44 # −999
OPAHrymaH 05.03.2020 19:10 # 0
https://github.com/mtumilowicz/java-bytecode-invokespecial
Fike 05.03.2020 19:20 # 0
3.14159265 05.03.2020 19:52 # 0
>Virtual (and interface) invocations are often demoted to "special" invocations, if the class hierarchy permits it.
guest8 05.03.2020 20:00 # −999
guest8 05.03.2020 18:42 # −999
Desktop 05.03.2020 18:44 # 0
guest8 05.03.2020 18:45 # −999
Desktop 05.03.2020 18:48 # +1
Есть реальные примеры мейнстримовых языков, в которых можно легко и просто шарить реализацию без наследования? Сразу скажу, что всякие там default implementation как в Свифте не предлагать: максимум, что ты на них построишь, это синтетику или совсем уж примитивные вещи.
guest8 05.03.2020 18:51 # −999
Desktop 05.03.2020 18:56 # 0
А вот примеры на Котлине я нихуя не понял. Судя по вики, Котлин это чуть ли не единственный йезык, где это чудо поставляется с батарейками, но о чём это, я всё равно не допетрил.
guest8 05.03.2020 19:05 # −999
gost 05.03.2020 19:07 # 0
Все, или только те, что определены в Bird?
guest8 05.03.2020 19:08 # −999
Desktop 05.03.2020 19:11 # 0
guest8 05.03.2020 19:13 # −999
Desktop 05.03.2020 19:17 # 0
?
Ну так, мило. Но super уже не позовёшь, например.
guest8 05.03.2020 19:19 # −999
Desktop 05.03.2020 19:23 # 0
По сути даже в твоём примере выше получается, что и вьюха, и контроллер конформят один и тот же интерфейс, толлько чтобы работал этот delegation, если я правильно понял. Похоже на абьюз.
guest8 05.03.2020 19:30 # −999
1024-- 05.03.2020 19:28 # 0
OPAHrymaH 05.03.2020 19:02 # +1
Desktop 05.03.2020 19:04 # 0
Что там под капотом-то происходит? И что делать, если я хочу, чтобы Derived не Base конформил, а какой-то интерфейс, частично совпадающий с Base по сигнатурам?
guest8 05.03.2020 19:07 # −999
Desktop 05.03.2020 19:12 # 0
guest8 05.03.2020 19:14 # −999
gost 05.03.2020 18:51 # +2
На самом деле там динамического питуха гораздо больше, чем в скрипте. Жабьей рефлексией можно менять всё что угодно, включая байткод любых методов и вообще классов (включая те, что в стдлибе), хакать жабокод очень приятно. Правда, это всё очень по-жабьему многословно, но зато нет такого, что из замыкания никакими способами нельзя вытащить захваченные переменные (дядя ПИ недавно замечательный пример приводит). И именно поэтому я за «Java» (в контексте динамичности).
guest8 05.03.2020 18:27 # −999
3.14159265 05.03.2020 19:31 # −1
Hotspot с лёгкостью уже лет 10 как инлайнит виртуальные методы.
1. https://wiki.openjdk.java.net/display/HotSpot/PerformanceTechniques
2. https://shipilev.net/blog/2015/black-magic-method-dispatch/
3. https://shipilev.net/jvm/anatomy-quarks/16-megamorphic-virtual-calls/
4. https://www.nurkiewicz.com/2013/01/how-aggressive-is-method-inlining-in-jvm.html
Ещё была классная статья с бенчами инлайна джвух наследников. Не могу сходу найти.
guest8 05.03.2020 19:40 # −999
3.14159265 05.03.2020 19:45 # 0
Нет.
Он обходится без виртуальных функций даже когда два потомка и соответственно два метода. Чего C# не умеет в принципе.
См. ссылку №1
>Methods are often inlined. This increases the compiler's "horizon" of optimization.
>Static, private, final, and/or "special" invocations are easy to inline.
>Virtual (and interface) invocations are often demoted to "special" invocations, if the class hierarchy permits it. A dependency is registered in case further class loading spoils things.
>Virtual (and interface) invocations with a lopsided type profile are compiled with an optimistic check in favor of the historically common type (or two types).
> эта задача переехала в JIT, верно?
jit ничего не доказывает. Он собирает статистику. И если метод вызывается всегда только на одном классе — его инлайнят.
То есть инлайн будет происходить, в случае когда есть несколько наследников, но вызывается только один или два.
guest8 05.03.2020 19:52 # −999
3.14159265 05.03.2020 19:55 # 0
Признайся. Ты не читал ни одну из данных мною ссылок.
Будет деоптимизация.
>И как заинлайнить метод на 900 строк в 900 мест?
Компилятору виднее. Если он решит что этого не стоит делать, то инлайна может и не случиться.
А ещё эти сволочи забрали у погромиста ключевое слово inline. Гады, ненавижу.сраказм
guest8 05.03.2020 19:55 # −999
Fike 05.03.2020 22:48 # 0
3.14159265 05.03.2020 20:49 # +1
В мире джавашков, это принято считать не багом, но фичей.
Типа мы оптимизируем на месте, под конкретные машины и конкретные наборы классов.
Ну в целом «оптимизировать» байт-код виртуальной машины с jit, это как у реальной машины пытаться на ходу руками крутить колёса, чтобы та ехала побыстрее.
Из №4
Important remark is that it's the JVM, not the compiler. javac is quite conservative when producing bytecode and leaves all that work onto the JVM. This design decision turned out to be brilliant:
* JVM knows more about target environment, CPU, memory, architecture and can optimize more aggressively
* JVM can discover runtime characteristics of your code, e.g. which methods are executed most often, which virtual methods have only one implementation, etc.
* .class compiled using old Java will run faster on newer JVM. It's much more likely that you'll update Java rather then recompile your source code.
bormand 05.03.2020 20:56 # +3
Проехав сотню-другую другую километров на квадратных колёсах, JIT решил, что пора бы их оптимизировать и поменять на круглые.
3.14159265 05.03.2020 21:00 # +2
С тегом: #так_говорил_Борманд
Вкупе с этим:
https://govnokod.ru/26356#comment521479
«Оптимизировать байткод - это как опрыскивать говно духами.» ⓒ
Fike 05.03.2020 22:46 # 0
guest8 05.03.2020 21:01 # −999
3.14159265 05.03.2020 21:05 # 0
Ага.
Я тоже его слышал в далёком 2003.
Поставил я себе тогда этот «.NET».
Мама дорогая, как же оно тупило.
Но маркетинг был прекрасен:
«Много языков», «одна платформа», «оптимизация под ваш процессор».
Я тогда померял и VB.NET сливал по пирфомансу даже старому VB6.
Причём вроде даже в P-code. А то что шарпик сливал VC++, думаю и так очевидно.
Впрочем с тех пор и жаба сильно ускорилась и .NET тоже.
bormand 05.03.2020 21:11 # +1
И эта идея про оптимизацию во время установки софта мне очень нравится - не надо 100500 бинарей под разные рахитектуры, но при этом можно заточить код под конкретный проц и даже под конкретные либы которые сейчас стоят в системе.
guest8 05.03.2020 21:15 # −999
bormand 05.03.2020 21:19 # 0
3.14159265 05.03.2020 21:37 # 0
Реальная оптимизация «под конкретную архитектуру» и задачу, это профилирование ( -fprofile )
Однако довольно мало либ поддерживают профилирование прямо из make.
libx264 один из примеров.
3.14159265 05.03.2020 21:23 # +1
-mcpu=native -march=native наше всё.
Я так делаю, НО ИСКЛЮЧИТЕЛЬНО для тех либ и программ, которыми пользуюсь и где мне наверняка нужен пирфоманс.
guest8 05.03.2020 21:37 # −999
3.14159265 05.03.2020 21:43 # 0
Тогда не было столько инструкций.
SSE, MMX. Ну и немного 3DNow.
>2001
SSE2 либо не вышел, либо только-только и все сидели на P3 и Атлонах. И это был на тот момент наиболее массивный набор новых комманд. 140+ инструкций, емнип.
Сейчас же SSE2 — baseline для x64. Под него можно собирать все 64-битные пакеты.
А после него идут: SSE3, SSSE3, SSE4.1, SSE4.2 (строки) AVX, AVX2, BMI, FMA, AVX512 (с кучей профилей)
Простор для оптимизаций гораздо шире.
gost 06.03.2020 06:56 # 0
Бля, сумасшедшие какие-то…
guest8 06.03.2020 10:40 # −999
gost 06.03.2020 10:47 # +2
Спасибо, не надо, я лучше бинарь поставлю.
guest8 06.03.2020 10:58 # −999
kak 06.03.2020 23:56 # 0
Проснись, ты обосрался даже проецируя свой цєлерон под Шиндошс XP образца 2020 года.
Даже прыщепердолики в 2001 давно повыкидывали на помойку такие высококопроизводительные платформы класса Писюк
nABuAH 06.03.2020 07:09 # 0
guest8 06.03.2020 11:02 # −999
3.14159265 06.03.2020 13:45 # +1
Да. И то. Ну 3-5% максимум что я выжимал.
Там же ручного ассемблера очень много.
Самое лучшая оптимизация это просто собрать его шлангом. И сборка быстрее чем gcc. И бинарник оптимизированей.
Причём --cpu=native --extra-cflags="-march=native" --extra-cxxflags="-march=native" даже немного просаживало пирфоманс при использовании clang.
Почему так, я не знаю до сих пор.
В ffmpeg code-base огромный, на старых процессорах он довольно долго собирается.
Как это всё профилировать, хз.
guest8 06.03.2020 14:21 # −999
3.14159265 06.03.2020 14:41 # +1
Дело в том что много программ, которым нужна скорость (вроде ffmpeg) давно вызывают написанный ручками ассемблер, специфичный для конкретной архитектуры.
Процессор детектится в рантайме и на лету подставляются указатели на оптимальные для поддерживаемого набора команд функции.
Компилятор не очень тут поможет.
А программы, которым не нужна скорость, и пересобирать бессмысленно.
guest8 06.03.2020 15:10 # −999
3.14159265 06.03.2020 15:29 # 0
А только на самые проблемные места, и самые частоиспользуемые кодеки.
Страшно заточенный декодинг H.264 сильно не ускорит.
Но если какая-то экзотика малооптимизированная или фильтры, коих там тысячи.
То благодаря такой сборке, и более новому компилятору можно выгадать до 10% скорости.
>зачем что-то собирать под конкретную арихтектуру
Профит есть. Всё-равно там сишка есть.
> зачем что-то собирать под конкретную арихтектуру
Я руками собирал ffmpeg, когда его из убунты выпилили.
Плюс самая свежая версия, плюс своя сборка быстрее.
guest8 06.03.2020 15:44 # −999
3.14159265 06.03.2020 16:30 # 0
В 14 LTS эти анскильные отбросы завезли avconv/libav.
Я уже травил стори про это:
https://govnokod.ru/26372#comment522890
https://govnokod.ru/15663#comment225480
>ffmpeg version 3.4.6-0ubuntu0.18.04.1
Тоже не годится. Гавно старое.
Везде 4.2 давно.
Нидернмайер раньше на все жалобы так и отвечал: use CVS, use git.
guest8 06.03.2020 16:35 # −999
3.14159265 06.03.2020 16:37 # 0
Я вижу.
>ну видимо вернули обратно уже
Это происходило с большим скрипом, срачем и жуткими проблемами.
Жаль потерял ссылку (или её удалили) на страницу где был целый ПЛАН по переводу убунты обратно.
3.14159265 07.09.2020 13:53 # +1
Добрый день.
Как раз профилировал шлангом одну либу.
Прирост пирформанса составил около 3%.
-O3 -DNDEBUG -fno-exceptions -fno-rtti в обоих случаях.
3.14159265 07.09.2020 13:53 # +1
А flto не помогло. Там что-то около 0.5%, в пределах погрешности.
Уменьшение перепитуха компенсируется раздуванием кода и кеш-промахами icache.
defecate-plusplus 07.09.2020 13:57 # 0
скептики посрамлены
3.14159265 07.09.2020 14:02 # 0
Там ещё может быть от 1% до 5% за счёт AVX2 и прочих -mnative.
Ну кому-то и 3% это ни о чём. Это сколько же нужно пирдолиться. Профайленный билд собирать в 2 раза дольше по времени, плюс нужно написать руками скрипт для двухпроходной сборки.
А вот например для Гугла даже 1% и то хорошо.
Make flto great again.
https://www.phoronix.com/scan.php?page=news_item&px=Machine-Function-Splitter
https://lists.llvm.org/pipermail/llvm-dev/2020-August/144012.html
defecate-plusplus 07.09.2020 14:18 # 0
особенно, когда речь о лишь 3%
видимо, стоит обсуждать случаи, когда горизонтальное масштабирование не вариант, и вообще никакое масштабирование не вариант, но их не так и много
bormand 07.09.2020 15:05 # +1
bormand 07.09.2020 15:13 # 0
Ну это разовое. А вот семплы для профайлинга поддерживать в актуальном состоянии, чтобы они реальные данные отражали - это уже всю жизнь.
3.14159265 07.09.2020 16:30 # 0
Ну не для всех применений.
В моей практике даже на рандомных/коротких семплах профит довольно ощутим и замеряем.
CHayT 07.09.2020 16:33 # 0
Кто ATLAS не собирал — жизни не видал. To proceed with a random ATLAS tuning in the face of CPU throttling, you can throw the configure flag: --cripple-atlas-performance.
Desktop 07.09.2020 16:34 # 0
CHayT 07.09.2020 16:35 # 0
3.14159265 05.03.2020 21:21 # +1
GENTOO
3.14159265 05.03.2020 21:26 # 0
Я ведь ждал царского пирфоманса, SSE2 всяких, а получил Microsoft™ Java, которая сливала даже Бейсику!
3.14159265 05.03.2020 21:29 # +1
Я ради интереса наформошлёпал обычное оконное приложение. Запустил, и оно сожрало 50Мб памяти!
ПЯТЬДЕСЯТ МЕТРОВ. Для понимания у меня тогда было 512Мб, и это было МНОГО, т.к. большинство тогда сидело на 256.
Хорошо что я .NET ломаный взял. А кто-то ведь мог и купить это говно.
guest8 05.03.2020 21:34 # −999
3.14159265 05.03.2020 21:40 # 0
Ага. Я субъективно помню что всё дико тупило. Ставилось ну очееень долго.
>Теперь у меня Студия 2017 и Coffe lake i7, а студия все равно запускается вечность
Между прочим IDE от МS раньше считались очень шустрыми.
VB и VC на слабых машинах грузились пулей по сравнению с Дельфями и Быдлером.
Но потом в Майкрософт переманили главного борландовца и понеслась.
>JVM в ту пору тоже не супер быстро работала в каком-нить pentium 3 tualatin:)
Java тогда считалась самым медленным языком вообще. Но кроссплатформенным.
guest8 05.03.2020 22:01 # −999
3.14159265 05.03.2020 21:56 # 0
Вот как выглядела визуал-студия мечты
http://img.xz7.com/up/2016-12/2016122883447.jpg
guest8 05.03.2020 22:01 # −999
bormand 05.03.2020 22:02 # +1
З.Ы. Обидно, что MSDN сейчас скатили в какую-то хуйню с битыми ссылками и корявым переводом.
guest8 05.03.2020 22:03 # −999
3.14159265 06.03.2020 00:53 # 0
Да, помню. Но source safe дрянь, не греющая душу.
А аналог spy++ я и сам писал на winapi, причём куда информативнее.
guest8 06.03.2020 04:10 # −999
3.14159265 06.03.2020 04:32 # 0
Благо у нас CVS был. Я на православном CVSNT года до 2007 просидел.
nABuAH 06.03.2020 04:52 # 0
guest8 05.03.2020 22:04 # −999
3.14159265 06.03.2020 00:56 # 0
Вот именно такое чувство от этого говёного .NETа было.
Тупило вообще всё: инсталл, хелп, IDE и написнаные на нём программы.
После VS 6.0 (немного проапдейченой Visual Studio 1997) это казалось просто каким-то тошнотворным тормозным ужасом.
.NET это первая фрустрация от MS, а второй была Виста.
Причём оба были долгостроями, и в итоге эталонный багор.
1024-- 05.03.2020 22:45 # 0
Проверял свежие версии на Sandy Bridge питухе, на Coffee Lake питухе, и на Core 2 Duo питухе в марте 2020.
guest8 05.03.2020 23:34 # −999
gost 06.03.2020 07:24 # +2
bormand 06.03.2020 08:56 # +1
Причём вот он нормально работает с файлами гига на 3-4, но периодически какие-то фризы по полминуты, как-будто gc работает.
1024-- 06.03.2020 21:10 # +2
* Тормозит, если включен спеллчекер
* Тормозит, когда меняется длина количества строк (проскроллил с 999 на 1000 строки)
* Тормозит, когда длинные строки не разбиваются \n и включён автоперенос
guest8 06.03.2020 21:12 # −999
3.14159265 06.03.2020 21:15 # +1
>У меня на ~6МБ уже начинает тормозить.
А гоcть за vim совсем не зря топил.
bormand 06.03.2020 21:24 # 0
Ну да, проверил, vim на 5 гиговом файле вполне сносно работает. По крайней мере поиск и чтение. А редактировать такие файлы я и не собирался.
3.14159265 06.03.2020 21:30 # +2
1024-- 15.02.2020 03:23
>Они там поехавшие совсем были?
>Или компьютеры настолько тормозили, что перерисовывать экран после нажатия кнопки было долго?
Ахахахах. Так компьютеры и сейчас ТОРМОЗЯТ.
1024-- 18 минут назад #>>531542 +2
Да вы там поехавшие с суперкомпьютерами. У меня на ~6МБ уже начинает тормозить.
Пока анскильные отбросы ждут ответа от редактора «What You See Is What You Get».
Настоящие Цари с vim и ed на 486 обгоняют суперкомпьютеры.
bormand 06.03.2020 21:40 # 0
Обмажутся своими экмаскриптами и электронами, а потом жалуются, что редактор на 6МБ текста тормозит.
3.14159265 06.03.2020 21:42 # 0
1024-- 06.03.2020 21:42 # 0
3.14159265 06.03.2020 21:50 # 0
Скриптуха бы сдохла на первом мегабайте.
Я уже говорил, что «problem with these editors is that Real Programmers consider "What You See Is What You Get" to be just as bad a concept in Text Editors as it is in women»
Но в целом проблема всех WYSIWYG-адептов в том, что они домохозяйки, которые начинают рассуждать о матчасти, консоли, линуксе и прочем.
Хотя, казалось бы - зачем?
Они просто показывают свои мечты, своё желание быть чем-то большим, нежели веб-макака.
Поэтому никто тебе слово не скажет, если ты будешь говорить правильно "моя WYSIWYG там круто, кукареку".
Но проблема не в этом. Проблема в том, что каждый сектант с очередным недоредактором прибегает и рассказывает о том как же vim/less/ed/teco ненужны и как он всех победил.
guest8 06.03.2020 21:52 # −999
gost 06.03.2020 21:52 # 0
3.14159265 06.03.2020 21:54 # 0
На этом фоне и развиваются все эти комплексы и они желают доказать всему миру, что вот они не говно.
И пропаганда это так же использует.
Она как-бы даёт веб-макаке недоредактор на котором она может насрать хелворд и даёт возможность сообщить "дак я же как teco", "дак я же как vim".
Чего рядовой адепт сделать не может. Хотя они и пытались.
Все эти Notepad++ сектанты - это вчерашние адепты notepad.exe — ещё вчера они орали, что консоль — говно, а MS Word убьёт vim и вообще лучше vima.
Очевидно, что абсолютно неважно как человек действует тогда, когда он мнит себя хозяином и гладит холопа.
Всё проявляться тогда, когда нужно отвечать и обосновывать.
И вот он спокойно сидел пока были файлы на 6 килобайт и начал обмазываться говном и тебя им закидывать тогда, когда ты предложил открыть большой файл.
WYSIWYG-сектант просто мразь. Сектант попросту не осознаёт своей деятельности.
Он может свято верить в том, что валять в говне и кидаться говном - это и есть ответ и аргументация.
Важно показать, что это не так.
guest8 06.03.2020 21:56 # −999
gost 06.03.2020 21:57 # 0
Теперь аккуратно совершай возвратно-поступательные движения рукой.
guest8 06.03.2020 22:00 # −999
3.14159265 07.03.2020 18:00 # 0
Это не новость:
https://govnokod.ru/26351#comment521224
3.14159265 06.03.2020 22:00 # 0
И понимаю что Царь как всегда прав.
Гость топивший за vim тоже достойный боярин. А божественные редакторы опять плеснули мочи в рожи WYSIWYG-сектантов.
3.14159265 06.03.2020 22:07 # 0
А teco, ed, ex, vim, less написаны на божественной Сишке!
В этом всё дело.
1024-- 06.03.2020 21:46 # 0
gost 06.03.2020 21:48 # 0
«Large Text File Viewer» тоже не тормозит на гигабайтах.
3.14159265 06.03.2020 21:52 # 0
Специально написан для многогигабайтных файлов.
bormand 06.03.2020 21:49 # 0
guest8 06.03.2020 21:51 # −999
1024-- 06.03.2020 21:56 # 0
guest8 06.03.2020 21:58 # −999
gost 06.03.2020 22:04 # 0
Плюс он очень хуёво обрабатывает крупные файлы с непечатными символами. NP++ их отображает как псевдосимволы (HEX-код в прямоугольнике), и когда их много — всё начинает адово тормозить. Подозреваю, что на каждую отрисовку такого символа он перерисовывает весь предыдущий текст, вот и получается квадрат.
guest8 06.03.2020 22:17 # −999
gost 06.03.2020 22:31 # 0
:(
guest8 06.03.2020 22:37 # −999
3.14159265 06.03.2020 21:37 # +1
Я гигабайтные логи смотрю строго через less.
Пайпы, нумерация строк, поиск, синтаксис такой же как у vima. Полёт отличный.
Короче царские редакторы опять слили в хламину гыгыкавших анскильных мразей.
1024-- 06.03.2020 21:48 # +1
gost 06.03.2020 21:27 # 0
guest8 06.03.2020 21:43 # −999
bormand 06.03.2020 21:45 # 0
F3 же. Ну хотя с 64-битным фаром может быть и F4 прокатит...
guest8 06.03.2020 21:46 # −999
guest8 06.03.2020 21:50 # −999
gost 06.03.2020 21:53 # 0
guest8 06.03.2020 10:36 # −999
Steve_Brown 06.03.2020 14:01 # 0
kak 06.03.2020 15:06 # 0
> на трех CD
Да у нас же тут инторнет-консервы!
OPAHrymaH 05.03.2020 21:27 # 0
Если постоянно запущена служба «Microsoft .NET Framework NGEN v4.0.30319_X86» (она же clr_optimization_что-то-там), то всё тупит и вечно мало свободной памяти.
Всё работает намного быстрее, если выключить эту службу и вручную отправлять команду «ngen update» после установки программ. Тогда ресурсы будут потрачены только на перекомпиляцию новых модулей.
3.14159265 06.03.2020 00:58 # 0
Так и в жабе тоже какая-то служба под винду была.
Java Quick Runner или Java Starter, что-то такое.
OPAHrymaH 06.03.2020 01:17 # 0
3.14159265 06.03.2020 01:18 # 0
https://cecomputerexpertise.files.wordpress.com/2010/10/gpo-java-quick-starter1.png
ngen от Sun.
3.14159265 05.03.2020 19:49 # 0
Зачем? Зачем?
Какие знания?
А если новую реализацию класса подгрузят класслоадером?
А если cglib сгенерит новый класс на лету?
А если просто подложат jar с классом-наследником?
Если класс не финальный нельзя делать такие допущения.
guest8 05.03.2020 19:54 # −999
3.14159265 05.03.2020 19:56 # 0
invokespecial недостаточно специальна?
guest8 05.03.2020 19:58 # −999
3.14159265 05.03.2020 20:10 # 0
Интересно.
А старые версии javac вроде как превращали private final в invokespecial.
По крайней мере в JLS раньше так и писали
https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-6.html
invokespecial
Invoke instance method; special handling for superclass, private, and instance initialization method invocations
guest8 05.03.2020 20:12 # −999
3.14159265 05.03.2020 20:14 # 0
Но раньше там целое объяснение было почему именно invokespecial на приватных методах.
guest8 05.03.2020 20:28 # −999
3.14159265 05.03.2020 20:32 # 0
Блять, вот как же я люблю оракл. Ссылка на баг, почему они поменяли invokespecial на invokevirtual
https://bugs.java.com/bugdatabase/view_bug.do?bug_id=7160765
3.14159265 05.03.2020 20:37 # 0
https://blog.overops.com/oracles-latest-java-8-update-broke-your-tools-how-did-it-happen/
3.14159265 05.03.2020 20:28 # 0
Я же точно помню, что раньше private превращался в invokespecial.
Release 8u20
Area: Specification / vm and HotSpot
Standard/Platform: Java SE 8
Synopsis: The verification of invokespecial instructions has been tightened so that only an instance initialization method in the current class or its direct superclass may be invoked.
RFE: 7160765
https://docs.oracle.com/javase/8/docs/technotes/guides/vm/enhancements-8.html
Fike 05.03.2020 21:52 # 0
Действительно, зачем нам писать нормальный байткод?
Fike 05.03.2020 22:07 # 0
> А если cglib сгенерит новый класс на лету?
Пусть жит с этим и разбирается. Со стороны байткода никаких проблем нет.
Fike 05.03.2020 18:33 # +1
Там еще и статика вынуждена каждый раз искать вызываемый метод. Какой late static binding )))
guest8 05.03.2020 19:21 # −999
Fike 05.03.2020 19:31 # 0
TATAPCKuu_neTyx 05.03.2020 20:28 # 0
phpBidlokoder2 05.03.2020 23:32 # −1
guest8 07.09.2020 15:18 # −999
CHayT 07.09.2020 16:22 # +1
guest8 07.09.2020 16:30 # −999
bormand 07.09.2020 16:32 # 0
guest8 07.09.2020 16:36 # −999
Desktop 07.09.2020 16:40 # +1
defecatinho 07.09.2020 16:40 # 0
bormand 07.09.2020 16:48 # 0
guest8 07.09.2020 16:51 # −999
Desktop 07.09.2020 16:53 # 0
guest8 07.09.2020 16:56 # −999
Desktop 07.09.2020 16:58 # 0
guest8 07.09.2020 16:59 # −999
Desktop 07.09.2020 17:01 # 0
defecate-plusplus 07.09.2020 17:25 # 0
у меня жена от 1 (одного) ребенка вешается и больше под страхом расстрела не хочет (может, через эн лет одумается)
сюжет идиократии напоминает
3_dar 07.09.2020 18:22 # 0
bormand 07.09.2020 18:39 # 0
Desktop 07.09.2020 18:41 # 0
Наверное, это индивидуально
bormand 07.09.2020 18:42 # 0
Desktop 07.09.2020 18:43 # 0
defecatinho 07.09.2020 18:43 # 0
bormand 07.09.2020 18:52 # 0
Я думаю, мне бы напомнили.
defecate-plusplus 07.09.2020 18:54 # +1
ты только на госуслуги иногда заходи, они синкают исполнительные производства
defecate-plusplus 07.09.2020 19:04 # 0
когда у тебя погодки, это вообще пиздец первые годы, смело их вычеркивай из жизни
не все готовы на такие жертвы
но зато через лет 7 ада ты вроде как свободен и снова нормальный человек
+ ребенок это тяжело в общении с ним, приходится опускаться на его высоту, терпеть, терпеть, терпеть
лишаешься ежедневного общения с предыдущим кругом (коллеги, которые плюс минус твоего уровня развития и твоих тем обсуждения, а во дворе мамаши-антиваксы с пивасом и гомеопатией, что с ними обсудить), лишаешься быстрых ачивок (перестаешь делать проекты даже в формате микродостижений) и переходишь на процессный режим работы (день сурка), лишаешься качественного сна, нет перерывов, лишаешься личного пространства (не посрать в одиночку, в душ сходить только когда муж вернулся), и постоянно на нервах, что он где-то найдет приключения (разольет, разобьет и т.д.)
кто-то создан для материнства, и период работы является временным перед семейным, домохозяйским периодом - тем можно и второго и третьего
а кто-то оказывается пиздец не готов, и это испытание
ещё ОЧЕНЬ важно иметь возможность сбагрить ребенка бабушкам или хотя бы тётям или в садик - это дает возможность хотя бы на два часа выдохнуть и перегрузиться
сегодня как раз обсуждалась в соседнем чате тема про сборщик мусора
guest8 07.09.2020 19:08 # −999
bormand 07.09.2020 19:09 # 0
guest8 07.09.2020 19:10 # −999
Desktop 07.09.2020 19:13 # 0
> Мальчик до восемнадцати лет
- паспорт же вроде намного раньше получают
bormand 07.09.2020 19:14 # 0
Desktop 07.09.2020 19:15 # 0
bormand 07.09.2020 19:15 # 0
Desktop 07.09.2020 19:16 # 0
– Я Вася, но дома все зовут Наташей!
Desktop 07.09.2020 19:11 # 0
defecate-plusplus 07.09.2020 19:15 # +1
относительно нормальное время, в которое реально даже сходить помыться!
или в позе креветки в телефоне зависать (это плохо для спины)
чуть дальше, до того, как начинает словами свои мысли выражать - сложнее
изматывающе
потом уже начинает слова, и чуть позже - предложениями
но подступает кризис 3летнего возраста
<вы находитесь здесь>
defecate-plusplus 07.09.2020 19:11 # 0
Desktop 07.09.2020 19:10 # 0
- а что, правда ситуация настолько плохая с этим, как пишут?
> ещё ОЧЕНЬ важно иметь возможность сбагрить ребенка бабушкам или хотя бы тётям или в садик
- есть такие родители (лично знаком), которые говорят, что нет-нет, никаких бабушек, они неправильно воспитают, разбалуют, испортят, в общем. И потом мама сидит с чадом до полного и окончательного помутнения
defecate-plusplus 07.09.2020 19:18 # 0
"нет нет никаких бабушек" это ебануто, ты не можешь несколько лет проводить в режиме 24/7 напряжения и спать по 6 часов, нужны выходные и время без ребенка, иначе никак
тогда няня (и сад с некоторого возраста) спасут
bormand 07.09.2020 21:24 # 0
Расходимся.