Pull to refresh
93
0.1

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

Send message

Спасибо за статью, поучительно. А как API описывается, например, вот это?

Тоже через Hugo?

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

Вы не могли бы привести пример использования такого подхода, в котором были выявлены и идентифицированы пробелы в дизайне?

В условиях первой задачи вместо "только один вопрос только одному из них" следовало бы написать «только по одному вопросу каждому из них»

Мы пробовали сделать это с помощью реляционных баз данных, но они себя тоже не оправдали. Еще использовали Hadoop, но он медленный, как и RabbitMQ.

А какое "железо" используется, на котором "реляционные БД" и Rabbit не способны обеспечить 15 тысяч RPS?

Этот пункт был выведен эмпирическим путем, когда мы поняли, что инсталляция Kafka больше, чем на 12 Тб на единицу кластера драматически рушит производительность.

Можно пояснить, что такое "единица кластера"?

ISO 81346-12:2018 — Part 12: Construction works and building services

Из этого стандарта я выше привел цитату. Цитата ссылается на 81346‑1:2009 и по смыслу соответствует отечественной верии. Т.е. на 2018 год ничего не изменилось.

Хорошо, вот на "языке оригинала":


3.4
component
product used as a constituent in an assembled product, system or plant
[SOURCE:IEC 81346‑1:2009, 3.7]

Интересная статья, спасибо. Вот такой момент:


Хотя есть четкие стандарты (например ISO 81346) которые определяют их. Если вы будете гуглить, то зачастую схема компонентов может называться схема модулей, а схема модулей — схемой компонентов.

Поискав, я обнаружил отечественный ГОСТ Р 58908.1-2020, который видимо, аналог IEC 81346-1:2009. Там пишут так:


3.6 продукт (product): Предполагаемый или достигнутый результат труда, естественного или искусственного процесса.
3.7 компонент (component): Продукт (изделие), используемый в качестве составной части собранного продукта (изделия), системы или установки.

WASM-модули относительно легко контролировать по использованию CPU и памяти, чего не скажешь про Java. Варианты есть, но они, будем так говорить, не для всех и experimental.

НО разработчики используют TinyGo, в котором сборщик мусора попроще и запускается когда недостаточно места в куче. Если между вызовом proxy_on_memory_allocate и моментом возврата владения в Go нет выделения памяти, то это условно безопасно.

Можно пример, как конкретно выглядит опасный сценарий при использовании go-pointer?

Не уловил, каким образом proxy_on_memory_allocate "превращается" для AssemblyScript
в:


/// Allow host to allocate memory.
export function malloc(size: i32): usize {
  let buffer = new ArrayBuffer(size);
  let ptr = changetype<usize>(buffer);
  return __pin(ptr);
}

?
PS: Видимо, так:


На стороне хоста выполняется поиск malloc, если нет, то ищется proxy_on_memory_allocate
> Примерно 75 тыс. самокатов отправляют сообщения на сервер в среднем раз в минуту. Во время движения частота обращений составляет один раз в 1–5 секунд.

Интересно было бы послушать про «железо», которое стоит за этим — сколько и каких серверов и т.д. Расскажите, по возможности :)
> И тем не менее, я не познал дзена Go, а все больше понимал, что чего-то мне не хватает.

Да, есть такой момент — если надо из программы на Go «выжать» максимум, то надо много читать.

2431 ops - как-то маловато. Да ещё и latency 9.8, странно. А каков общий размер записи, примерно?

Татьяна, а можно поподробнее узнать про параметры нагрузки системы — соотношение запросов чтение/запись, типичное время ответа, производительность (rps)?

Интересный вариант. Попробовал так:


go run -gcflags="-l=4 -m -m" concgo.go s > o 2>&1


  • На результаты не повлияло
  • В o пишут:
    .\concgo.go:60:6: cannot inline is_convergent: function too complex: cost 87 exceeds budget 80
  • Т.е. таки проблема с is_convergent не во "вложенности", а в "сложности"?
  • В исходниках пишут:
    making 1 the default and -l disable. Additional levels (beyond -l) may be buggy and
    // are not supported.
  • Вроде нет указаний, что -l=4 можно использовать "в бою"?

В таких вопросах очень полезны базовые познания как в ассемблере так и в технологиях получения этого ассемблера из исходников.


Сибираюсь "черкнуть" пару статей про обобщенные типы в Go, там этот вопрос будет рассматриваться.

Добавил разделители для удобства. Хотя это уже "подделка данных".

окно, партиция != фрейм окна (опять же правильно ли называть партицию окном — извечный вопрос определения, переведенного с иностранного языка)

Интересно, а почему не использовать терминологию Microsoft?


  • Окно
  • Рамка окна
  • Секция
  • Секционирование?

Information

Rating
6,063-rd
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity

Specialization

Software Architect
Lead