• Почему inline функция класса C++ медленнее обычной inline функции?

    gbg
    @gbg Куратор тега C++
    Любые ответы на любые вопросы
    Попробуйте начать с теста без omp parallel - ведь вы его даже не настраиваете перед пуском. Если результаты совпадут - настройте. В первом случае, у компилятора явно нет гарантий локальности оператора суммирования.

    Можете кстати std::plus проверить, вдруг с ним сработает.

    И да, под это дело есть std::transform. Реализации STL в C++11 по стандарту требуют от операндов transform гарантий, разрешающих параллельное исполнение. Остается открытым вопрос с тем, реализуют ли они параллелизм.

    И да, не вижу версии с итераторами. Вот она будет быстрее всех ваших.
    Ответ написан
    4 комментария
  • Как подключить библиотеку на c++ к проекту на go?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Есть общепринятый подход с использованием cgo. Об этом читать в ответе на вопрос из FAQ-a: Do Go programs link with C/C++ programs?
    Ответ написан
    Комментировать
  • Дети и интернет: как контролировать?

    @mnty
    Владимир написал уже все, о чем я подумал (жаль только, что поскромничал под спойлер), поэтому просто добавлю пять копеек из своего детства.

    Долго разглагольствовать не буду, просто скажу, что благодаря тому, что родители думали в ключе «как дать», а не «как ограничить», компьютер у меня появился одним из первых в классе, что впоследствии дало мне преимущество в несколько лет перед сверстниками. Разумеется, к тому моменту, когда компьютеры начали появляться и у других, я уже успел неоднократно поубивать винду95 удалением системных файлов, изучить все доступные детскому уму комбинации «домен.ком» и вдоволь насытиться играми. Позже, пока они еще игрались в чаты/айсикью/ультиму-онлайн/контр-страйк, я уже зарабатывал свои первые сто долларов, стряпая баннеры какому-то незнакомому парню, написавшему мне на имейл, с оплатой постфактум по вебмани, потому что за год до этого я выставил пару своих каракуль на каком-то тематическом форуме; и таки получив свои кровные на руки в местной бандитской бильярдной у дилера вебмани, который там отдыхал. Нет, мне, как и всем детям, все еще хотелось играться и все такое, просто мне повезло избежать состояния дорвался. У меня уже было свободное от детского досуга время на саморазвитие.

    Господи, спасибо родителям, что им не хватило ума меня тогда контролировать. И что о сексе я все узнал из порнушки, и ответы на все возникающие с каждым новым фильмом вопросы нашел до того, как пришлось применять знания на практике. Родителям просто некогда было мной заниматься. Они даже не знали как. Уверен, выпади мое детство на сегодняшний день, тоже бы наслушались от друзей-подруг про контроль и безопасность, и в паре с некомпетентностью в воспитании и отсутствием времени на своего ребенка черт знает что бы вырастили.

    Подытоживая эту маленькую зарисовку, хочется сказать, что лично я бы рекомендовал родителям самосовершенствоваться и учиться строить отношения со своими детьми, иметь ответы на все детские вопросы, быть интересным собеседником, самым сильным папой, самой нежной мамой, и тогда вопрос контроля отпадет сам по себе. Отношения строятся на доверии, а когда нет доверия, приходится прибегать к контролю.
    Ответ написан
    Комментировать
  • Целесообразно ли замена I7-950 на сомвременную модель?

    valekify
    @valekify
    Front and back ends.
    Я полагаю, что целесообразно. Прирост производительности в 230% при 380$.
    Core I7-950: cpubenchmark.net/cpu.php?cpu=Intel+Core+i7+950+%40...
    Core I7-5820k: cpubenchmark.net/cpu.php?cpu=Intel+Core+i7-5820K+%...
    Правда нужно не забывать о замене другого железа совместимого с новым процессором, как минимум материнской платы.
    Ответ написан
    Комментировать
  • Как в python 3.4 вернуть несколько значений из сопрограммы (корутины)?

    @bromzh Автор вопроса
    Drugs-driven development
    Ответ подсказали в другом месте. В общем, можно использовать для таких целей очередь:
    import random
    import asyncio
    
    @asyncio.coroutine
    def coro(que: asyncio.Queue):
        res = 0
    
        t = random.random() * 3
        yield from que.put('start 1')
        yield from asyncio.sleep(t)
        yield from que.put('value 1 = {}'.format(t))
        res += t
    
        t = random.random() * 3
        yield from que.put('start 2')
        yield from asyncio.sleep(t)
        yield from que.put('value 2 = {}'.format(t))
        res += t
    
        t = random.random() * 3
        yield from que.put('start 3')
        yield from asyncio.sleep(t)
        yield from que.put('value 3 = {}'.format(t))
        res += t
    
        yield from que.put(None)
        return res
    
    @asyncio.coroutine
    def run(que: asyncio.Queue):
        while True:
            res = yield from que.get()
            if res is None:
                break
            print(res)
    
    q = asyncio.Queue()
    asyncio.async(run(q))
    asyncio.async(coro(q))
    asyncio.get_event_loop().run_forever()
    Ответ написан
    Комментировать