Да, но ведь и не указано, что кучи должны быть равными. Почему-то пытаясь решить эту задачу, очень многие (включая меня) откуда-то вот это несуществующее условие про «равные» в голове нарисовали. И всё, с этим условием — задача уже нерешаема.
Неплохо, но непонятно причем тут именно Кремниевая Долина и IT вообще. На 95% описанное здесь — это просто «нормальные нормы» делового общения, хоть там, хоть сям.
Единственное, что может еще остаться непонятным — как передать данные из dll в 1C
Там тоже весело. Не помню что там насчёт COM, но насколько я понял Native API делали «по мотивам». Так вот, там надо сначала получить указатель на аллокатор памяти самой 1С, и возвращаемые значения должны возвращаться, сорри за тавтологию, исключительно по указателю на область памяти, аллоцированную этим аллокатором, сорри за тавтологию еще раз, не я это придумал.
… но это уже не Native API. Да, имею сказать про Native API — оно и правда весьма такое себе… Полный C++, с множественным наследованием, причем на ровном месте. Имею с ним не то чтобы богатый, но опыт — так вот моё мнение — проще, как для разработчиков API, так и для разработчиков расширений было бы всё это реализовать на Plain old good C. Тем более что если там вчитаться в код — всё с Plain C и начинается: библиотека экспортирует всего 3 обычные __stdcall — функции. Но первая возвращает указатель на класс. Который еще три наследует. Короче, какое-то «горе от ума» там.
Когда в конце 80-х я еще был программистом, никому в голову не могло придти при оптимизации учитывать время доступа к памяти.
Например, на ZX Spectrum, там была «быстрая» и «медленная», ЕМНИП. Что-то связанное с особенностью доступа к видеопамяти.
А позже, конец 90-х — начало 00-х — там уже кэши пошли, на SRAM. Сначала внешние (редкий, если не сказать редчайший зверь эпохи 486-х, что-то по формфактору на DIMM похожее, по цене вертолёта), ну а потом понеслось: L1, L2, L3, (L4 уже есть, или я что-то пропустил?)
Проблемы, ИМХО начались, нет, не в тот момент, когда решили устроиться одной жопой на двух стульях. И не когда на трёх. И даже не на четырёх. А когда НА ВСЕХ СРАЗУ. А для Java всё же как были так и есть — лучшие.
«С мобильными девайсами все становится материальным и социальным» — вот читая такие сентенции представляю себе маркетоида-победителя-здравого-смысла, нараспев читающего такой себе рэпчик-речитатив: «С мобильными девайсами все становится материальным и социальным, йоу, реально-провокационным, крутым, стабильным, приносящим прибыль, еще метастабильным (не знаю, что это, но звучит круто), новую рифму дайте время придумать, хоть пол-минуты.
Могут. Было. Не жалею. Непросто. Но это скорее «взять передышку для нового рывка». И именно в таком контексте — такой подход оправдал себя. Но, повторюсь, это непросто: сознательно выходить из пресловутой зоны комфорта.
en.wikipedia.org/wiki/Spectral_band_replication
Уже одна эта строчка сразу навела на мысль, что дальше по тексту будет про UB и прочая чёрная магия. Так и оказалось.
Например, на ZX Spectrum, там была «быстрая» и «медленная», ЕМНИП. Что-то связанное с особенностью доступа к видеопамяти.
А позже, конец 90-х — начало 00-х — там уже кэши пошли, на SRAM. Сначала внешние (редкий, если не сказать редчайший зверь эпохи 486-х, что-то по формфактору на DIMM похожее, по цене вертолёта), ну а потом понеслось: L1, L2, L3, (L4 уже есть, или я что-то пропустил?)
Терзайте!
ИМХО совершенно ничем не примечательная железка, одна из многих. Ни одной «киллер-фичи».