Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> C++ - производительность, бенчмарк 
:(
    Опции темы
archimed7592
Дата 26.1.2008, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Цитата(JackYF @  26.1.2008,  13:19 Найти цитируемый пост)

*поперхнулся* ... это вообще как?

Очень просто smile. Они очень амбициозны: на рынке нет устраивающего их ЯП - создадим свой! Аналогично у них своя ФС, своя СУБД(не реляционная, к слову smile).


Цитата(JackYF @  26.1.2008,  13:19 Найти цитируемый пост)
кто сказал? 

Сами ходят по ВУЗам и рассказывают smile. На YouTube можно посмотреть записи их лекций... Искать по кл. словам "Google tech talks".


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Alexeis
Дата 26.1.2008, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 14
Всего: 459



Цитата(archimed7592 @  26.1.2008,  11:26 Найти цитируемый пост)
Не вижу изюминки, но, если возьмёшься чётко поставить задачу - можно.

  Ну хорошо, можно тогда еще добавить дублирование слов. Не хочеться особо сложной задачи, чтобы не лень было реализовывать smile .


Значит формулировка такая.
---------------------------------------------------------------------------------------------
Из предложенного текста удалить все слова длинее 6 символов (только слова пробелы не трогать), все слова длиной в 3 символа продублировать 7 раз. 
---------------------------------------------------------------------------------------------

пример :
"Гостиная Анны Павловны  начала  понемногу  наполняться." -> " Анны   начала    " 

"война и мир" -> "война и мирмирмирмирмирмирмир"
---------------------------------------------------------------------------------------------
текстовый файлик "Война и Мир" 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
archimed7592
Дата 26.1.2008, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Добавлю к этому, что нужно считывать не из файла, а из потока стандартного ввода, а результат выводить в поток стандартного вывода, причём без каких-либо приблуд(помимо результата).


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
JackYF
Дата 26.1.2008, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 2
Всего: 162



Цитата(archimed7592 @  26.1.2008,  12:31 Найти цитируемый пост)
Они очень амбициозны: на рынке нет устраивающего их ЯП - создадим свой!

и что у них вместо С/С++? Python не катит.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
archimed7592
Дата 26.1.2008, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Цитата(JackYF @  26.1.2008,  13:54 Найти цитируемый пост)
и что у них вместо С/С++?

Если я поднатужусь и вспомню название, боюсь, что тебе оно ни о чём не скажет, ибо это их внутрений язык. Лучше потрать полчаса на то чтобы скачать лекции и ещё немного, чтобы прослушать их - много интересного узнаешь ;).

Начни отсюда: http://youtube.com/watch?v=uwa7tRAUlPQ


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Alexeis
Дата 26.1.2008, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 14
Всего: 459



Цитата(archimed7592 @  26.1.2008,  12:47 Найти цитируемый пост)
Добавлю к этому, что нужно считывать не из файла, а из потока стандартного ввода, а результат выводить в поток стандартного вывода, причём без каких-либо приблуд(помимо результата).


  А я и не говорил, что читать нужно из файла, не важно каков первоначальный источник, хоть ресурс, хоть сегмент данных. Время засекаем после того как получили готовый буфер в ОЗУ. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
MAKCim
Дата 26.1.2008, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



archimed7592
давай лучше задачу про категории


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
archimed7592
Дата 26.1.2008, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Цитата(Alexeis @  26.1.2008,  14:11 Найти цитируемый пост)
 А я и не говорил, что читать нужно из файла, не важно каков первоначальный источник, хоть ресурс, хоть сегмент данных.

Вот не надо этих "хоть" smile. Я чётко определил откуда будет читаться, куда будет писаться. Ты можешь быть против стандартных потоков и сказать "хочу чтобы читалось из test.in, писалось в test.out" - ок, без проблем, но должна быть определённость без "хоть" ;).
Т.о. можно будет написать тестер, который будет на автомате прогонять тысячу тестов для 3-5 решений.


Цитата(Alexeis @  26.1.2008,  14:11 Найти цитируемый пост)
Время засекаем после того как получили готовый буфер в ОЗУ.  

Нет, время засекается с момента старта приложения и до момента его завершения. Для того чтобы исключить разные издержки тест прогоняется 101 раз и берётся среднее от последних 100 запусков, причём делается это всё внешней утилитой.


Цитата(MAKCim @  26.1.2008,  15:44 Найти цитируемый пост)
archimed7592, 
давай лучше задачу про категории 

smile
Ну давай smile.
Могу я поинтересоваться, чем тебя эта задача смутила? smile


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Alexeis
Дата 26.1.2008, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 14
Всего: 459



Цитата(archimed7592 @  26.1.2008,  14:51 Найти цитируемый пост)
Нет, время засекается с момента старта приложения и до момента его завершения.

  Давайте еще время отсчитывать от старта операционки  smile . Просто гениально! А ничего, что запуск программы зависит от ее размера и количества подгруженных модулей, времени инициализации программы и т.д.? Это что тоже определяет скорость работы алгоритма?


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
MAKCim
Дата 26.1.2008, 16:31 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



Цитата(archimed7592 @  26.1.2008,  15:51 Найти цитируемый пост)
Могу я поинтересоваться, чем тебя эта задача смутила?

лень
слишком много работы со строками



--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
archimed7592
Дата 26.1.2008, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Хорошо, наполовину настоящий Сишник, давай. Задача там вроде чётко поставлена smile.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
JackYF
Дата 26.1.2008, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 2
Всего: 162



Цитата(Alexeis @  26.1.2008,  15:01 Найти цитируемый пост)
Это что тоже определяет скорость работы алгоритма?

а мы сравниваем программы, а не алгоритмы, не так ли?  smile 


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Alexeis
Дата 26.1.2008, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 14
Всего: 459



Цитата(JackYF @  26.1.2008,  15:51 Найти цитируемый пост)
а мы сравниваем программы, а не алгоритмы, не так ли? 

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

  Хотя в задаче про строки время работы алгоритма будет исчисляется десятками секунд, потому погрешность будет невелика. Но вот если разница будет 2-5%, то достоверность таких опытов будет нулевая.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
MAKCim
Дата 26.1.2008, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



Код

#include <stdlib.h>
#include <stdio.h>

static char buffer[4096];
static char * ptr = buffer;

static void * (*search)(const void*, const void*, size_t, 
        size_t, int (*)(const void*, const void*)) = &bsearch;

static int compare(const void * a, const void * b) {
    const int * first = a;
    const int * second = b;
    if (first[2] < second[2])
        return -1;
    else if (first[2] > second[2])
        return 1;
    else if (first[1] < second[1])
        return -1;
    else if (first[1] > second[1])
        return 1;
    else if (first[0] < second[0])
        return -1;
    else if (first[0] > second[0])
        return 1;
    return 0;
}

static void * find(const void * key, const void * base, size_t nmemb,
        size_t size, int (*compar)(const void*, const void*)) {
    const int * element = base;
    for (; nmemb--; ++element) {
        if (!compare(key, element))
            return (void*)1;
    }
    return NULL;
}

static void print(int level, int * numbers, FILE * fs) {
    static char array[sizeof(int) * 2];
    if (level == -1)
        return;
    unsigned int * ptr = (unsigned int*)array;
    ptr[0] = ptr[1] = 0x20202020;
#define HIGH    "high"
#define MIDDLE    "middle"
#define LOW    "low"
    switch (level) {
        case 0:
            array[0] = '\0';
            fprintf(fs, "%s%s%d\n", array, HIGH, numbers[2]);
            array[0] = ' ';
        case 1:
            array[2] = '\0';
            fprintf(fs, "%s%s%d\n", array, MIDDLE, numbers[1]);
            array[2] = ' ';
        case 2:
            array[4] = '\0';
            fprintf(fs, "%s%s%d\n", array, LOW, numbers[0]);
    }
}

int main(int argc, char * argv[]) {
    FILE * fs = fopen(argv[1], "r");
    if (fs == NULL)
        return 1;
    if (fseek(fs, 0, SEEK_END) != 0)
        return 2;
    long position = ftell(fs) + 1;
    if (position == 0)
        return 3;
    rewind(fs);
    size_t elements;
    size_t number;
    size_t multiply;
    size_t count = 0;
    int * current = (int*)malloc(position), *start = current;
    if (current == NULL)
        return 4;
    char symbol;
    while (fgets(ptr, 4096, fs) != NULL) {
        elements = 3;
        for (; *ptr++;);
        ptr -= 3;
        do {
            for (; *ptr < 0x30 || *ptr > 0x39; --ptr);
            number = 0;
            multiply = 1;
            do {
                number += (*ptr - 0x30) * multiply;
                multiply *= 10;
            } while (*--ptr > 0x2F && *ptr < 0x3A);
            *current++ = number;
        } while (--elements);
        ++count;
    }
    if (argc == 4 && !strcmp(argv[3], "sort"))
        qsort(start, count, 3 * sizeof(int), &compare);
    else search = &find;
    FILE * writer = fopen(argv[2], "w");
    if (writer == NULL)
        return 5;
    int level;
    void * base = start;
    print(0, start, writer);
    elements = count;
    while (--count) {
        current = start;
        start += 3;
        print(start[2] == current[2] ? (start[1] == current[1] ? (
                search(start, base, elements - count, 3 * sizeof(int), &compare) == NULL ? 2: -1): 1) : 0, start, writer);
    }
    return 0;
}


названия категорий high, middle и low
хотя это только на вывод влияет  smile 

Это сообщение отредактировал(а) MAKCim - 26.1.2008, 18:53


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Void
Дата 26.1.2008, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 11
Всего: 173



MAKCim, погоди, кто сказал, что имена категорий фиксированы? Из
Цитата
Animals;Mammals;Cat

Мы должны получить
Цитата
Animals
  Mammals
    Cat

, но никак не
Цитата
high9
  middle0
    low0

Боюсь, низачот smile


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




[ Время генерации скрипта: 0.1033 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.