Форум сайта python.su
Koalaскажут, что вам неплохо было бы научиться внятно выражать свои мысли
это лучше с/c++ или да
Офлайн
OK, ТЗ понятно. Вопрос: есть ли преимущества у языка Go для высоконагруженных систем перед традиционными C/C++?
Офлайн
KoalaУ каждого существующего языка есть какое-то преимущество. Например ваша команда программистов его знает.
есть ли преимущества у языка
Sanya28Если он такой удобный то у вас явно есть шанс доказать это, быстро найдя в нем способ отладки в вашем случае.
запускаю удобный Qt Creator
Sanya28
информативность результатов очень низкая. профайлер ругается на отсутствие отладочной информации у библиотeк Python.
Отредактировано doza_and (Ноя. 11, 2019 22:33:33)
Офлайн
KoalaТы знаешь, что у Go даже самая мелкая программка весит мегабайт? При этом на C я могу в мегабайт засунуть десяток пакетов о-о-очень полезных программ. Знаешь, при записи на какую-нибудь микросхему, где памяти нет, или даже хостинг в инете, где за каждый мегабайт просят по $100, это имеет значение. Конечно, прекрасно, что можно в программу всё включить и она не будет ни от чего зависеть. Но в нормальной среде правильно то, когда есть выбор, как тебе сделать - включать или не включать все зависимости. В Go же выбора нет.
Вопрос: есть ли преимущества у языка Go для высоконагруженных систем перед традиционными C/C++?
Отредактировано py.user.next (Ноя. 13, 2019 09:25:24)
Офлайн
Я вижу такое потенциальное решение вопроса отладки кода, в котором Python вызывает С++ (с передачей данных и возвратом результата работы):
создаются Python и C++ библиотки, в которых реализована возможность читать и писать в канал (с приостановкой программы отправителя по мере наполенения буфера канала). Тогда в обеих программах можно будет импортировать эти библиотеки, настроить целевые функции для приема / отправки данных, а потом запустить программы на Python и С++.
Должно вроде взлететь. Но возможно я не знаю уже существующих более простых решений.
Отредактировано Sanya28 (Ноя. 12, 2019 08:56:27)
Офлайн
Sanya28самое простое - subprocess и не только для С/С++
Должно вроде взлететь. Но возможно я не знаю уже существующих более простых решений.
//palindrom.c #include <stdio.h> #include <string.h> #include <stdlib.h> int pal(unsigned long n) { unsigned long v = 0; unsigned long m = n; while (1) { v += m%10; m /= 10; if (!m) break; v *= 10; } if (n == v) return 1; return 0; } int main(int argc, char** argv) { unsigned long start,stop; start = atol(argv[1]); stop = atol(argv[2]); for (unsigned long i = start; i < stop; i ++) { if (pal(i)) fprintf(stdout, "%lu ",i); } fprintf(stdout,"\n"); return 0; }
gcc -Wall -O2 palindrom.c -o palindrom
from subprocess import run, PIPE from time import time cmd = './palindrom 100 1000000'.split() t0 = time() p = run(cmd,stderr=PIPE,stdout=PIPE) out = p.stdout.decode().split() print(time() - t0,len(out))
Офлайн
Sanya28Уважаемый, вам же написали что для отладки вам надо просто прочитать документацию по вашему инструменту отладки. Зачем же вы изобретаете желтого бегемота?
потенциальное решение вопроса отладки кода
Офлайн
doza_and
Уважаемый, вам же написали что для отладки вам надо просто прочитать документацию по вашему инструменту отладки. Зачем же вы изобретаете желтого бегемота?
Отредактировано Sanya28 (Ноя. 13, 2019 08:49:04)
Офлайн
Sanya28А что ты делаешь в отладчике всё время? Почему просто не покроешь код юнит-тестами?
Я вижу такое потенциальное решение вопроса отладки кода
Офлайн
py.user.next
А что ты делаешь в отладчике всё время? Почему просто не покроешь код юнит-тестами?
Офлайн