Как стать автором
Обновить
-2
0

Пользователь

Отправить сообщение

Может быть, это «уточнение по каналам сотрудников» и есть такая запоздалая деза.

Только в некоторых для этого надо входить в десятку врагов системы, как Сноуден, а в некоторых достаточно попытки уклониться от перлюстрации.

«Мой плевок в чашке Петри играет лучше, чем ты!»

В фразе тег закрытия сарказма // каждый расставляет для себя. (с)

Я рад, что мы согласны :) Я не говорил, что нельзя, я тоже сказал, что плохо ложится (употребил слово «ужасно», потому что выходит уродливо).

«Достигнем сверхпроводимости при комнатной температуре как путём повышения температуры сверхпроводимости, так и путём понижения комнатной температуры!»

А эту проблему решим, соответственно, понижением взаимодействия с зарубежом.

Можно, но это полумеры. Как на меня, лучше бы они были в теле объекта, поддавались memcpy() и не требовали сборки мусора. Да и разные они, это всё ID из разных систем. (Идею представлять их long-ами я тоже рассматривал - не налазит).

Дальше идёт идея разметить вручную пул байтов, вон и комментаторы её независимо предложили, но это уже лютый overkill.

Вот про «не понимая», мне кажется, было необоснованно.

Давайте и я расскажу вам несколько прописных истин. Во-первых, проектам свойственно расти естественным путем. Что хорошо работало для сотен тысяч, работает неважно (хотя всё ещё работает) для десятков миллионов. Во-вторых, бывает так, что сама постановка задачи прямо требует делать то, что вам кажется «глупо» (а на самом деле - это рационализация подсознательного понимания того, что таки да, ваш любимый молоток здесь не очень хорош). В-третьих, выбор языка диктуется многими факторами; в нашем случае - поддержкой фреймворков, с которыми нужно интегрироваться.

Да, если бы проект писали или переписывали с нуля с сегодняшними требованиями, то, скорее всего, взяли бы что-то другое.

По сути.

На идею с ручным нарезанием буфера на объекты: а) мы превращаем Джаву в язык уровня выше Ассемблера, но ниже, чем С - в С хотя бы можно сделать этот буфер массивом struct-ов. б) это уменьшает в разы, но не решает полностью проблему миллионов аллокаций и gc.

Фреймворк или БД: а) вот вы и сами начинаете понимать, что тут не Джава нужна. б) Я подозреваю, что самая лучшая специализированная in-memory БД с минимальным оверхедом будет делать ровно то же самое: строить HashTable и сканировать её. Не уверен, что вы подразумеваете под фреймворком - JNI-библиотеку, которая делает то же самое на С?

Интересный разговор у нас получился. Я: «для некоторых задач неверно, что Джаву можно оптимизировать настолько же, как языки без gc». Вы: «Вы всё неправильно делаете и не понимаете. Нужно только переделать Джаву, чтобы она перестала быть Джавой, или заменить её на другой язык, и вообще у вас задача неправильная».

Вы не поверите, я пробовал что-то подобное. Но обратите внимание, как далеко мы зашли: мы переписываем часть джавовского рантайма: пишем свои собственные классы без классов, свой собственный аллокатор и сборщик мусора, и не факт, что эта коллекция велосипедов будет работать лучше.

Мы потеряли читабельность Джавы, не решили полностью проблему миллиона аллокаций, и что приобрели?

Вы не думаете, что этот доказывает мой тезис - что методы существуют, но зайти надо настолько далеко, что Джава уже перестаёт быть Джавой?

Вообще 7ю. Но не то чтобы Compact Strings сильно помогли, у нас все String-и длиной до 16 символов. Не думаю, что аллокации делаются меньше 32 байт. Хотя померять, конечно, стоит, может, и перейдём на 9+.

Согласен, моё описание выглядит именно так. Выше ответил, что пространства для манёвра ТЗ оставляет очень мало, увы.

Это правда. Но, увы, исходная задача не слишком сильно отличается и оставляет мало места для манёвра: читать файл с миллионами записей раз в минуту; возможно, его содержимое будет почти таким же, как у предыдущего, а возможно, и другим; группировать по id и выдавать его в другом формате.

Производительность критична настолько, что каждый лишний лукап по id заметно её ухудшает.

Я уперся в задачу, где за минуту нужно создавать и выбрасывать десятки миллионов объектов, и рантайм Джавы, при всём уважении, справляется ужасно. В каждом объекте есть несколько String-ов, так что каждый - это несколько аллокаций и оверхед процессора и памяти на gc. А процесс потребляет более 75% доступной памяти.

В языке без gc, где такой объект можно обработать через memcpy, производительность была бы на порядок выше.

Так что методики, конечно, существуют, но не на всякую задачу налазят.

По заголовку сразу вообразил киянку.

Recall так и происходит. Мне приходило штуки 3 писем от «Тойоты» - «Если характерно скрипит багажник, заедете, поправим», а не так, как можно подумать, что, мол, машину увозят на эвакуаторе и выдают вместо неё замену.

Учитывая, что «date» - это ещё и «свидание», ожидал от консоли совсем других странностей…

у вас в обществе, ценящем свободу слова, появляются субъективные темы, на которые есть два мнения — общепринятое и неправильное.

Прошу развернуть мысль, сейчас она слишком общая, чтобы о чём-то говорить.

Да, всегда есть какое-то общепринятое мнение.

Является ли увольнение retaliation'ом?

Зависит от причины. Вот первое определение из гугла: "In an employment context, retaliation is punishment of an employee by an employer for engaging in legally protected activity".

То есть, закон следует принципу "что не запрещено, то разрешено". Запрещено увольнять за protected activity. За всё остальное – не запрещено, работодатель может устанавливать правила, какие хочет.

Математика давно умеет работать с небинарными и вообще недискретными вещами.

Прошу прощения, просто уточнял. Это удивительно, сколько людей с околоматематическим образованием не владеют понятием нечёткого или вероятностного множества, а пользуются только двоичной логикой.

> «Ваша свобода размахивать кулаками заканчивается там, где начинается нос другого».

Этот принцип не имеет смысла, потому что на множестве свобод не определена метрика если совсем вкратце и нечётко, он не говорит, где может оказаться нос этого самого другого. Если он вдруг оказался в моём доме, то махать руками уже вполне осмысленно.

Как это, не определена? Что есть закон, если не такая метрика?

На этом месте я, боюсь, потерял мысль.

Можно спросить, какую идею вы хотите обосновать? Что даже в "продвинутом" западном обществе за правильную, невинную, но противоречащую общепринятому консенсусу мысль могут уволить? Это лучше разбирать с примерами, потому что абстрактные платоновские идеи мы можем долго толочь в ступе.

Рекурсия, где? Вас смущает, что «государство, ценящее свободу слова» определено через «свободу слова»?

Для свободы слова могу предложить определение из Википедии. Это материя сложная, аналоговая (небинарная - не ожидайте математической чёткости) и многомерная, но в целом, определение согласуется с принципом «Ваша свобода размахивать кулаками заканчивается там, где начинается нос другого».

Информация

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