@ProCxx

Страница 1564 из 2477
Иван
10.12.2017
20:52:45
Боятся ООП не нужно

Да и лабы не сложные

Berkus
10.12.2017
20:53:41
канонично было бы на smalltalk ООП изучать
есть тот же Newspeak VM например с достаточно современным смолтоком, так что никаких проблем это устроить нет

Артем
10.12.2017
20:54:39
Да и лабы не сложные
Я сложных лаб особо и не боюсь, а вот если скажут пишите на SIMULA 67, я уже не слишком удивлюсь...

Google
Berkus
10.12.2017
20:55:45
канонично было бы на smalltalk ООП изучать
но смолток появился позже симулы

Владислав
10.12.2017
20:56:35
шучу, конечно, C++ уже все преподы давно освоили. Но не сказать, что это идеальный язык для изучения ООП

Grigor
10.12.2017
20:57:30
Владислав
10.12.2017
20:57:54
Kitsu
10.12.2017
20:58:20
p.s. https://habrahabr.ru/company/innopolis_university/blog/333622/

Berkus
10.12.2017
21:12:28
Хотя бы не Эйфель
эйфель как раз таки ООП язык, получше питона и С++ для этого

melancholiac
10.12.2017
21:14:14
Egor
10.12.2017
21:18:07
а что не так?
Он не совсем ооп, хоть и позволяет применять концепцию

Egor
10.12.2017
21:18:46
чем это он не ооп?
Многим не нравится отсутствие модификаторов доступа

melancholiac
10.12.2017
21:19:20
Google
Egor
10.12.2017
21:20:20
многим и friend функции не нравятся
Тут хоть небольшая возможность спрятать данные от длинных рук есть, а в питоне нет

melancholiac
10.12.2017
21:20:49
Тут хоть небольшая возможность спрятать данные от длинных рук есть, а в питоне нет
в питоне есть один способ эффективно спрятать данные, но им никто не пользуется

Egor
10.12.2017
21:21:32
Liubomyr
10.12.2017
21:21:43
лс)

melancholiac
10.12.2017
21:22:04
странно вроде о языках разных общались а теперь не по теме :/

melancholiac
10.12.2017
21:27:35
Будут пруфы?
>>> def counter(initial): ... c = initial ... def inner(x): ... nonlocal c ... c+=x ... return c ... return inner >>> c <function counter.<locals>.inner at 0x7fc09e311048>

Berkus
10.12.2017
21:40:32
чем это он не ооп?
где ж там ооп, сплошные костыли

melancholiac
10.12.2017
21:41:15
*стикер с обиженным котиком*

melancholiac
10.12.2017
21:41:40
Berkus
10.12.2017
21:41:43
это больше в сторону FP

melancholiac
10.12.2017
21:42:00
ну так и есть

зато рефлексии навалом :D

Berkus
10.12.2017
21:45:22
рефлексия и в руби есть, а там ооп ящитаю гораздо более оопистое

но вообще рефлексия это не главное, и к ооп ортогональна

Kitsu
11.12.2017
00:17:23
это больше в сторону FP
скорее есть отдельно фп-питон и отдельно процедурный

все же можно на нем писать очень хреновый, и весьма просто

Ioann V
11.12.2017
00:50:16
простой вопрос: что быстрее: unsigned foo(unsigned x) { return (x<<4) - (x<<2) - (x<<1); } vs unsigned foo(unsigned x) { return x*10; } ?
Точно первая. Хотя скорее всего, ее компилятор запишет через (x + 4x) sum (x + 4x), при том повторку занесет в който из стандартныхрегистров, вроде EAX С телефона мне проверить сложно. Но что говорить и думать, когда в очевидных оптимизациях - компилятор промахивается изрядно. То что ты в пример кинул - это своего рода easy base. В то время, как то о чем например говорю я - уже требует наличия от компилятора комбинировать какие то части и понимать, что отсечется.

Google
Ioann V
11.12.2017
00:56:02
Я придумал кое что крутое, для теста. Но пока нету времени именно это сесть и сделать. Но если коротко - проверю, на СЛОЖНОЙ практической задаче, то, кпк грамотно распаковывает компилятор std vector + умные указатели. Проверю логику его циклов и их разворотов. Сделаю это на реальной практической задаче. Далее, возможно, пофикшу ее asm ручками и прогоню с фиксом. Разница в 5-10% win. Если меньше - lose.

Ioann V
11.12.2017
00:58:54
лол, gcc наоборот превращает первый вариант в умножение, а второй оптимизирует в lea + add
Ой, я немного неверно выразился. Я хотел написать, как доожно бы быть в идеале. В идеале как раз через add - должно быть быстрее.

Ну а то что там компиляторы мудрят - это их право. Хы. Тут надо делать так: запускать тесты и измерять время. Вообще бы, в rtos.

Vladislav
11.12.2017
01:01:09
О, кстати, а ты умеешь правильно измерять? Это целое искусство

Ioann V
11.12.2017
01:02:35
Почти уверен что ни один из компиляторов не вывезет верно накатать в simd - скалярное умножение 4 ех векторов в 5 инструкций :) Не проверял - но почти уверен, т.к задача редкая, да м человек ее сходу не решит.

О, кстати, а ты умеешь правильно измерять? Это целое искусство
Ну что то помню возился, было дело. А какую замерку ты имеешь ввиду верно сделаной. Std chrono + create thread with max priority on win ?

Vladislav
11.12.2017
01:04:31
Ну что то помню возился, было дело. А какую замерку ты имеешь ввиду верно сделаной. Std chrono + create thread with max priority on win ?
ну вот предположим что ты уже сделал n замеров, как ты из них получишь финальный результат ?

Ioann V
11.12.2017
01:04:52
Ну тут надо Коле сказать спасибо. Возьму min.

Vladislav
11.12.2017
01:05:24
Ну тут надо Коле сказать спасибо. Возьму min.
вот) многие этого не знают, даже в каких-то там библиотеках для бенчмарков видел что среднее берут

Ioann V
11.12.2017
01:06:32
Yep

Ну суть в том, что таким методом можно в целом по 4 делать быстро. Т.е есть у тебя 16 то задача хорошо ляжет на Avx. Так то если подумать это не сложно. Но в компиляторы я не особо верю. Конечно, могу и ошибаться.

Google
Alexander
11.12.2017
03:39:38
Если да, то сразу репорти в компиляторы

Admin
ERROR: S client not available

Alexander
11.12.2017
03:46:43
Да, согласен.

Arseny
11.12.2017
05:45:55
вот) многие этого не знают, даже в каких-то там библиотеках для бенчмарков видел что среднее берут
Не всегда. Например, многопоточный код может иногда подтормаживать из-за false sharing. Если только брать минимум, то можно просто этого не заметить.

Arseny
11.12.2017
05:53:57
Ну потому что примерно все колебания времени работы происходят из-за внешней среды. Например, потому что кто-то другой начал сильно использовать cpu.

Egor
11.12.2017
05:54:47
Arseny
11.12.2017
05:55:30
Ну кто-то другой поработал на cpu и запортил тебе весь кеш.

Egor
11.12.2017
05:57:11
Ну кто-то другой поработал на cpu и запортил тебе весь кеш.
Делать замеры производительности на таких устройствах, где кто-то другой может поработать и запортить кэш, стоит в крайних случаях?

Arseny
11.12.2017
06:00:55
Делать замеры производительности на таких устройствах, где кто-то другой может поработать и запортить кэш, стоит в крайних случаях?
Операционная система может. Да мало ли. Но если все результаты одинаковые, то и проблемы нет.

Vladislav
11.12.2017
06:01:57
в общем, минимум не работает если замеряемый код сам по себе недетерминированный

но в таком случае отделить "внутреннюю" дисперсию от внешних факторов - вообще сильно нетривиальная задача

Egor
11.12.2017
06:05:03
в общем, минимум не работает если замеряемый код сам по себе недетерминированный
Логично. Я где-то читал, что замеры в процессорных тиках (или квантах, не помню) не зависят от внешних воздействий, поэтому не важно, что кто-то другой использует процессор.

Vladislav
11.12.2017
06:06:30
а без этого бенчмарк обычно малополезен

Egor
11.12.2017
06:07:51
С чего бы?
Считаются только тики которые обрабатывали нужную задачу

Aidar
11.12.2017
06:08:15
Считаются только тики которые обрабатывали нужную задачу
Тики которые были потрачены на ожидание кэша это что?

Google
Egor
11.12.2017
06:08:44
Matwey
11.12.2017
06:41:26
Тики которые были потрачены на ожидание кэша это что?
Так по-моему их тоже можно сосчитать через perfcounters

В чем проблема?

Arseny
11.12.2017
06:43:09
В том, что иногда мы ждем кеш по своей вине, а иногда нет.

desu
11.12.2017
09:07:59
привет есть маленький вопрос

status = stat("/home/cnd/mod1", &buffer); есть такая функция

если туда передается типа ".filename"

где он ищет его?

или надо как в примере "/home/filename"

Dima
11.12.2017
09:20:24
где он ищет его?
в текущей папке

Nickolas
11.12.2017
09:20:38
В текущем рабочем каталоге

Страница 1564 из 2477