All streams
Search
Write a publication
Pull to refresh
4
0
Send message

Json на таких объемах должен парситься мгновенно, а вот оверхед и задержка на сети будет значительной, особенно если сокеты синхронные.

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

Если ориентироваться на локальный российский рынок, то объем его не большой, и то в основном это военка, и квази государственные компании и структуры.

Тут скорее удивительно, чем эти 2000 занимаются. (/sarcasm)

В современных биосах используется технология CAR(cache as ram), которая инициализируется практически сразу после самого старта, а дальше обычный Си.

Да можно проще, достаточно показать выразимость в "базисе" для которого эти свойства доказаны. То есть сделать реализацию элемент NAND или NOR.

Имелось ввиду насколько язык прижился в промышленной разработке. На scala в среднем на порядок больше вакансий. Эрланг тоже встречается, но у него довольно узкая ниша.

По моим ощущениям Scala была лучшей попыткой из всей функциональщины.

Хорошая статья, напомнить про эффективность рынков, для любителей активной торговли.

Jupyter и python, по моему опыту это в основном инструмент исследования, когда надо быстро и удобно, и до 80% написанного кода пойдет в ведро. Внедрение это отдельный вопрос.

Все таки советую переделать на нормальный код, как здесь:

if ( event.ControlDown() && event.m_keyCode <= 0xFF && event. isalpha(event.m_keyCode) )

оно действительно может упасть, если keyCode будет больше 255

https://stackoverflow.com/questions/65514890/glibcs-isalpha-function-and-the-en-us-utf-8-locale

Да, я почитал стандарт и вы в общем случаи правы. И в некоторых реализациях действительно делается лукап, без проверки диапазона.

Поэтому я бы советовал автору кода поменять вот это:

if ( event.ControlDown() && isalpha(event.m_keyCode) )

на

if ( event.ControlDown() && event.m_keyCode <= 0xFF && event. isalpha(event.m_keyCode) )

У меня не хватает фантазии, что бы представит, как сравнение int с char может, чтото поломать впринципе. Это абсолютно коректная и определенная операция.

Там дальше написано, к чему конкретно это относится:

"This is necessary because char may be the equivalent of signed char, in which case a byte where the top bit is set would be sign extended when converting to int, yielding a value that is outside the range of unsigned char."

И конечно же там нет ничего, про UB, и я слабо представляю как ее в принципе можно посадить в этом коде.

Нет functional completeness означает, что можно реализовать любую функцию, и все 16 в частности. Xor на сколько я понимаю такой функцией не является.

https://stackoverflow.com/questions/10276892/are-the-xor-and-not-gates-logically-complete

Но если вы с этим не согласны, можете показать как реализуется на xor "базис": NOR,NAND или OR/AND/NOT.

https://electronics.stackexchange.com/questions/140684/construct-an-and-gate-from-xor-gates

Извините за душноту, но еще и NOR.

PS: хотя наверное вы имели ввиду достаточно одного базового элемента NAND, чтобы собрать любую логическую схему. Из элементов с двумя входами и одним выходом, только NAND и NOR, обладают данным свойством.

Оставлю для интересующихся.

https://en.wikipedia.org/wiki/NAND_logic

"The NAND Boolean function has the property of functional completeness. This means that any Boolean expression can be re-expressed by an equivalent expression utilizing only NAND operations."

https://en.wikichip.org/wiki/boolean_algebra/functional_completeness

Load a - Load a, является частным случаем Load a - Load b. И соответственно будет давать такой же результат. Или вы думаете что если адрес одинаковый, то и переупорядочивание будет магическим образом отключаться? Ладно, я понял, что вы просто хотите оказаться правым в конце. Поэтому не вижу смысла продолжать диалог. Удачи.

Эти источники мудрости довольно легко находятся в интернете, к примеру:

https://www.alibabacloud.com/blog/memory-model-and-synchronization-primitive---part-1-memory-barrier_597460

Читайте про LoadLoad reordering.

То что написано в Фортране, не имеет к многопоточке никакого отношения. Потому что там в коде будет правильная последовательность mov, в правильном порядке. Но без примитивов синхронизации они не будут давать правильный результат который вы ожидаете, просто потому что в процессоре они могут быть произвольно пере упорядочены.

Вы вообще с чем спорите?

1) Современные процессоры пере упорядочивают чтения из памяти

2) Код без процессорных примитивов синхронизации, неизбежно столкнется с 1)

По тому и другому вопросу, есть тонны подтверждений, можно даже собственные эксперименты провести. Вы просто сильно переоцениваете свою компетенцию, начиная рассуждать о том, о чем имеете весьма отдаленное представление.

Вы издеваетесь? Прочитайте еще раз ссылку "memory ordering". Очевидно требует, если вы хотите чтобы в коде: *timer (1) - *timer (2), 1 прочиталось из памяти раньше 2.

Проблема в том, что в современных out-of-order процессорах без примитивов синхронизации этот порядок не определен. Хоть обкодогенерируйся.

Information

Rating
Does not participate
Registered
Activity

Specialization

Software Developer, Application Developer
Senior
C++
C++ STL
Linux
Python
Machine learning
Applied math
Algorithms and data structures
Code Optimization