Вы не правы человек должен осознавать, что приобретает краденый товар. В статье про "скупку краденого" это даже специально указано она называется "Приобретение или сбыт имущества, заведомо добытого преступным путем".
А вообще это и так следует из ст. 24-26 УК РФ, вкратце чтобы доказать вину человека, нужно доказать умысел на совершение преступления (кроме статей "по неосторожности").
Только AGPS это совсем не определение координат по базовым станциям.
AGPS это когда GPS приемнику специальный сервер может передавать (напр. по GPRS) альманах и другую полезную информацию, которая помогает увеличить точность и уменьшить время старта приемника.
Айтишники работники умственного труда вообще тут ни при чем.
Все очень просто если вы очень не хотите служить в армии, не служите: заплатите кому надо денег или поступайте в [фиктивную] аспирантуру. Не надо пытаться оправдывать свое нежелание служить в армии тем что вы айтишник, пацифист, выступаете против политики текущей власти и т.п.
Хотя, что касается вашего случая, наверное это было давно gcc и msvc практически на 100% сейчас стандарту соответствуют, за исключением совсем мелких мелочей (ну и export template, которого практически нигде нет и не собираются).
Но вообще конечно, в жизни, код, использующий (пускай нестандартный) макрос __FUNCTION__, намного более переносим чем использующий стандартные эксепшены :)
Я конечно не знаю как в линуксе, но в винде .text точно загружается как copy-on-write то есть когда загрузчик будет адреса править, копии в памяти создадутся только для тех страниц, которые реально изменились.
Кстати, можно в двух словах неужели в ELF с этим настолько по-другому, не так как в COFF? Как же там релоки работают? Ну то есть, если в коде есть ссылка на статические данные, или там адрес процедуры надо ж как-то наверное таки патчить его при загрузке?
Эт бесспорно, просто человек там выше явно что-то другое имел ввиду.
Я из похожего могу только припомнить как турбо ассемблер переводил "shl reg, N" в N инструкций "shl reg, 1" поскольку до 286 процессора инструкции для побитового сдвига на N бит не было, только на единичку. %)
Во, отлично: конвертор нормальный юз кейс, так как тот код все равно руками никто трогать не будет, и любые ужасные макросы там простительны ;)
Насчет линковки смысл такой *уже* имея огромных размеров приложение на C++, его проще всего попилить на динамические библиотеки. Глубоко рефакторить, уменьшая зависимости, может быть довольно долго, дорого и нерационально.
Чтобы уменьшить время линковки, чтоб юзеру посылать одну пропатченную библиотеку а не всё сразу. Потом часто бывает что библиотека используется *в основном* только одной программой.
Ну у нас тут есть таки некоторые классовые различия, т.к. я под виндовс пишу, но тем не менее и под линуксом N, я уверен, слишком мало чтобы его учитывать. И собственно программ, использующих технологию "а давайте все строки намертво зашьем в гигантский статический массив" тоже крайне невелико.
Не, стоп N это число программ, одновременно загружающих в память нашу библиотеку. С библиотеками которые использует только одна программа я довольно часто встречаюсь, да.
То есть этот прием позволяет выиграть пару секунд при загрузке приложения, использующего несколько десятков либ по несколько миллионов статических строк в каждой? Довольно специфичный случай.
Большие таблички статического текста я видел только в компиляторах, но они не такие гигантские там. Сообщения об ошибках ну не знаю, во-первых 10 тыщ это очень много, во-вторых, обычно предусматривается какая-то возможность для локализации этих сообщений, и поэтому хранятся они во внешнем текстовом файле.
Я просто не понимаю, может я и правда не знаю каких-то use case'ов где это может дать заметный выигрыш, может у меня просто опыта недостаточно, или область профессиональных интересов не та..
Что касается C++ я лично на нем пишу из любви к деньгам, по другому не получается пока :)
Однако ж, стремиться к высокой производительности совсем не значит тратить время чтобы достичь микроскопической экономии памяти.
Насчет кэша я не очень понял, как наличие релоков может на него как-то влиять. Ну да, загрузчик там будет патчить адреса в .data но ведь после того как либа загружена в память, разницы между #2 и #3 не будет вообще никакой: 40K табличка указателей + 80K табличка строк. Так что я не понимаю, засчет чего оно медленнее получилось у вас.
Вы не правы человек должен осознавать, что приобретает краденый товар. В статье про "скупку краденого" это даже специально указано она называется "Приобретение или сбыт имущества, заведомо добытого преступным путем".
А вообще это и так следует из ст. 24-26 УК РФ, вкратце чтобы доказать вину человека, нужно доказать умысел на совершение преступления (кроме статей "по неосторожности").
[05:50:48 PM] lrrr: Шварцнегер
[05:50:48 PM] ru2en: Gonzales
[05:50:54 PM] lrrr: Шварцнегер!
[05:50:54 PM] ru2en: Schwarzenegger!
[05:51:00 PM] lrrr: Шварцнегер
[05:51:01 PM] ru2en: Schwarzenegger
AGPS это когда GPS приемнику специальный сервер может передавать (напр. по GPRS) альманах и другую полезную информацию, которая помогает увеличить точность и уменьшить время старта приемника.
Кстати, в Великобритании людей в возрасте от 16 до 45 лет всего около 25 миллионов уже получаем не более 500 тысяч айфонов.
А если обратиться к первоисточнику результатам опроса, эти 2% опрошенных всего лишь "рассматривают возможность" купить айфон к рождеству.
Все очень просто если вы очень не хотите служить в армии, не служите: заплатите кому надо денег или поступайте в [фиктивную] аспирантуру. Не надо пытаться оправдывать свое нежелание служить в армии тем что вы айтишник, пацифист, выступаете против политики текущей власти и т.п.
Хотя, что касается вашего случая, наверное это было давно gcc и msvc практически на 100% сейчас стандарту соответствуют, за исключением совсем мелких мелочей (ну и export template, которого практически нигде нет и не собираются).
Но вообще конечно, в жизни, код, использующий (пускай нестандартный) макрос __FUNCTION__, намного более переносим чем использующий стандартные эксепшены :)
Я из похожего могу только припомнить как турбо ассемблер переводил "shl reg, N" в N инструкций "shl reg, 1" поскольку до 286 процессора инструкции для побитового сдвига на N бит не было, только на единичку. %)
И еще, чисто теоретически PBO таки меньше возможностей имеет, чем JIT.
Насчет линковки смысл такой *уже* имея огромных размеров приложение на C++, его проще всего попилить на динамические библиотеки. Глубоко рефакторить, уменьшая зависимости, может быть довольно долго, дорого и нерационально.
Ну у нас тут есть таки некоторые классовые различия, т.к. я под виндовс пишу, но тем не менее и под линуксом N, я уверен, слишком мало чтобы его учитывать. И собственно программ, использующих технологию "а давайте все строки намертво зашьем в гигантский статический массив" тоже крайне невелико.
Большие таблички статического текста я видел только в компиляторах, но они не такие гигантские там. Сообщения об ошибках ну не знаю, во-первых 10 тыщ это очень много, во-вторых, обычно предусматривается какая-то возможность для локализации этих сообщений, и поэтому хранятся они во внешнем текстовом файле.
Я просто не понимаю, может я и правда не знаю каких-то use case'ов где это может дать заметный выигрыш, может у меня просто опыта недостаточно, или область профессиональных интересов не та..
Что касается C++ я лично на нем пишу из любви к деньгам, по другому не получается пока :)
Однако ж, стремиться к высокой производительности совсем не значит тратить время чтобы достичь микроскопической экономии памяти.
Насчет кэша я не очень понял, как наличие релоков может на него как-то влиять. Ну да, загрузчик там будет патчить адреса в .data но ведь после того как либа загружена в память, разницы между #2 и #3 не будет вообще никакой: 40K табличка указателей + 80K табличка строк. Так что я не понимаю, засчет чего оно медленнее получилось у вас.
Ну разве что это полезно в очень специфичных случаях когда релоки могут являться узким местом в производительности.