Форум Краматорська

  • 28 Березень 2024, 22:34:57
  • Ласкаво Просимо, Гість
Будь ласка увійдіть або зареєструйтесь.

Увійти

Новини:

Автор Тема: ram vs cpu или так ли не прав был билл гейтс!  (Прочитано 2222 раз)

0 Користувачів і 1 Гість дивляться цю тему.

29 Березень 2018, 06:35:26
Прочитано 2222 раз
Offline

вор


Offline вор

  • *
  • Посетитель
  • Повідомлень: 70
  • Країна: zw
  • Карма: +0/-0
  • Дякую
  • Сказав: 0
  • Отримав: 1
    • Перегляд профілю
есть у меня одна программка в исходниках на c++, считает разные цифры и числа..запускал её долго выполняться, жрала немеряно памяти, решил - накормлю до отвала, суку..выставил объём swap 1.6tb..она резко затормозила и стала жрать 243mb virtual ram и 162mb physical ram постоянно, причём числа и цифры теже выдаёт, в теле её они не забиты, а вычисляются в процессе работы..как она решила этот вопрос с памятью - неясно, я подключался к интернету, может на уровне компилятора, может на уровне процессора, может на уровне операционой системы, но решила вопрос своей жадности, видимо через интернет, ибо линукс более дырявый, чем виндовс или такой же просто другой масти..делаю вывод: большие объёмы памяти и нафик не нужны, память и процессорное время взаимозаменяемы..это я узнал еще в 2003-2005 году, когда работал над сжатием данных..билл гейтс был прав 640kb хватит любому достаточно быстрому процессору или кластеру процессоров для любой задачи! а вот объём жёсткого диска желательно иметь как можно больший!

Форум Краматорська


29 Березень 2018, 06:58:20
Відповідь #1
Offline

_Алекс_


Offline _Алекс_

  • BANNED
  • *****
  • Ветеран
  • Повідомлень: 4006
  • Країна: ua
  • Карма: +89/-12
  • Дякую
  • Сказав: 368
  • Отримав: 547
  • 20 Декабрь 2009/26 Декабрь 2018
    • Чоловіча
    • Перегляд профілю
"640KB оперативы хватит с головой!" - воскликнул Билл Гейтс, выпуская очередную версию винды, которая голая "отъедает" более 2ГБ  :o
COMFY - ма-га-зин суууу-пееер-обмааа-на
хамоватые "посетители" kramatorsk.info - я вас люблю
компания #ВОЛЯ #VOLIA - пособник террористов
#РоссииУжеНет

"Коля - хороший парень"
"Нэ провоцюйтэ!"
Тут є "московська зозуля"

власти приходится воровать (с) Карл Волох

29 Березень 2018, 08:30:00
Відповідь #2
Offline

вор


Offline вор

  • *
  • Посетитель
  • Повідомлень: 70
  • Країна: zw
  • Карма: +0/-0
  • Дякую
  • Сказав: 0
  • Отримав: 1
    • Перегляд профілю
ну...когда бг занимался этими вопросами, дела обстояли именно так, сейчас он просто фотография в журнале  :o
возможно я слукавил и большие объёмы нужны cad/cam/cae решениям для работы над сложными моделями, процессоры просто не вывезут такой объём вычислений в короткое время..будут сильно греться и много потреблять энергии и из-за этого и растут объёмы ram :o т.е. дешевле перенести в ram, чем прогонять через процессор 3d модель цеха завода, для того чтобы подвинуть, покрутить или масштабировать в реальном времени..такие мысли :? опять же упёрлись в производительность процессоров, они не всесильны :o
вот рекурсивная функция из той программы, что была жадна до памяти, а потом остепенилась, во вложении полный исходник c++
Код: [Select]
/**
 * @brief Move generator performance test function.
 *
 * @param board
 * @param depth
 * @param global_stats statistics
 */
static void count_game(const Board *board, const int depth, GameStatistics *global_stats)
{
GameStatistics stats = GAME_STATISTICS_INIT;
unsigned long long moves;
int x;
Board next[1];

if (depth == 1) {
moves = get_moves(board->player, board->opponent);
stats.n_moves = stats.max_mobility = stats.min_mobility = bit_count(moves);
if (moves == 0) {
if (can_move(board->opponent, board->player)) {
stats.n_passes = 1;
} else {
const int n_player = bit_count(board->player);
const int n_opponent = bit_count(board->opponent);
if (n_player > n_opponent) stats.n_wins = 1;
else if (n_player == n_opponent) stats.n_draws = 1;
else stats.n_losses = 1;
}
}
} else {
moves = get_moves(board->player, board->opponent);
if (moves) {
foreach_bit (x, moves) {
board_next(board, x, next);
count_game(next, depth - 1, &stats);
}
} else {
board_next(board, PASS, next);
if (can_move(next->player, next->opponent)) {
count_game(next, depth - 1, &stats);
}
}
}
game_statistics_cumulate(global_stats, &stats);
}

/**
 * @brief Move generator performance test
 *
 * @param board
 * @param depth
 */
void count_games(const Board *board, const int depth)
{
int i;
unsigned long long t, n;
GameStatistics stats;

board_print(board, BLACK, stdout);
puts("\n  ply           moves        passes          wins         draws        losses    mobility        time   speed");
puts("------------------------------------------------------------------------------------------------------------------");
n = 1;
for (i = 1; i <= depth; ++i) {
stats = GAME_STATISTICS_INIT;
t = -cpu_clock();
count_game(board, i, &stats);
t += cpu_clock();
printf("  %2d, %15llu, %12llu, %12llu, %12llu, %12llu, ", i, stats.n_moves + stats.n_passes, stats.n_passes, stats.n_wins, stats.n_draws, stats.n_losses);
printf("  %2d - %2d, ", stats.min_mobility, stats.max_mobility);
n += stats.n_moves + stats.n_passes;
time_print(t, true, stdout); printf(", ");
print_scientific(n / (0.001 * t + 0.001), "N/s\n", stdout);
if (stats.n_moves + stats.n_passes == 0) break;
}
printf("Total %12llu\n", n);
puts("------------------------------------------------------------------------------------------------------------------");
}

29 Березень 2018, 09:25:00
Відповідь #3
Offline

вор


Offline вор

  • *
  • Посетитель
  • Повідомлень: 70
  • Країна: zw
  • Карма: +0/-0
  • Дякую
  • Сказав: 0
  • Отримав: 1
    • Перегляд профілю
разобрался с программой, ничего там не менялось, просто я запарился..но рассуждения верны, если бы не игры и фильмы, то для вычислительных задач память заменют такты процессора :o

29 Березень 2018, 09:54:35
Відповідь #4
Offline

LynxAS


Offline LynxAS

  • **
  • Завсегдатай
  • Повідомлень: 227
  • Країна: ua
  • Карма: +9/-0
  • Дякую
  • Сказав: 0
  • Отримав: 34
  • Я люблю тебя, жизнь, а ты меня снова и снова....
    • Чоловіча
    • Перегляд профілю
а вот разрешите не согласиться )
вот имеем к примеру мега-супер-пупер быстрый проц
а памяти ему дали (не считая кэша) - 640 кб
и вот он такой запросил кусок данных для расчета у дисковой подсистемы, подождал, посчитал за аттосекунду, отдал диску, запросил следующий кусок, подождал.
а теперь внимание вопрос - сколько времени будет тратиться на расчет и сколько - на обмен данными?
Датчик температуры http://lynxas.krm.dn.ua/weather.html

29 Березень 2018, 10:00:44
Відповідь #5
Offline

вор


Offline вор

  • *
  • Посетитель
  • Повідомлень: 70
  • Країна: zw
  • Карма: +0/-0
  • Дякую
  • Сказав: 0
  • Отримав: 1
    • Перегляд профілю
а вот разрешите не согласиться )
вот имеем к примеру мега-супер-пупер быстрый проц
а памяти ему дали (не считая кэша) - 640 кб
и вот он такой запросил кусок данных для расчета у дисковой подсистемы, подождал, посчитал за аттосекунду, отдал диску, запросил следующий кусок, подождал.
а теперь внимание вопрос - сколько времени будет тратиться на расчет и сколько - на обмен данными?
тут мы приходим к пониманию важности понятия кэша процессора, может нужно всю память перенести в процессор? :D архитектура фон-неймана, машина тьюринга и т.д. и т.п. в конечном итоге любые вычисления это сдвиг туда-сюда :D оптимальная вычислительная функция - синусоида, кто не выпил - ходит по прямой, а кто выпил - по синусоиде, вывод -> чтобы хорошо считать - нужно больше пить  :yahoo:

29 Березень 2018, 15:22:34
Відповідь #6
Offline

вор


Offline вор

  • *
  • Посетитель
  • Повідомлень: 70
  • Країна: zw
  • Карма: +0/-0
  • Дякую
  • Сказав: 0
  • Отримав: 1
    • Перегляд профілю
просто компьютер не только для счёта, отсюда все извращения с ростом объёмов памяти, внешних накопителей, размера экрана и т.д. прогресс короче..а считали бы люди только научные задачи, кто его знает какой бы была архитектура компьютера..но чисто для себя выяснил, что даже выделение памяти под массив можно заменить обработкой каждого элемента последовательно без выделения под весь массив, но тогда нужна быстрая дисковая подсистема и совсем другие алгоритмы обработки данных..домашний компьютер это порождение прогресса, человек настолько развился, что ему дома понадобилось строить города, запускать корабли и прочее, что мы видим в современных играх..а билл гейтс был прав, но не прозорлив..далёкое будущее предвидеть легко, сложнее всего делать прогнозы на недалёкое будущее  :patsak:
LynxAS просто когда билл делал такой прогноз, то в моде были стриммеры, последовательные внешние накопители, и билл думал, что относительно быстрой будет дисковая подсистема(как у стриммера) и мощным процессор, а на память не хватило фантазии подумать, что она будет дешевая, экономичная и быстрая, такова моя версия, а на самом деле это может всего лишь журналистская утка про слова билла :P

29 Березень 2018, 17:54:34
Відповідь #7
Offline

_Алекс_


Offline _Алекс_

  • BANNED
  • *****
  • Ветеран
  • Повідомлень: 4006
  • Країна: ua
  • Карма: +89/-12
  • Дякую
  • Сказав: 368
  • Отримав: 547
  • 20 Декабрь 2009/26 Декабрь 2018
    • Чоловіча
    • Перегляд профілю
проблемы с объемом озушки для меня сейчас наиболее актуальны при программировании ардуины с 2К оперативы (или урезанный вариант - 1К)
тут уже задумываешься о типах переменных ( byte или unsigned int (1 или 2 байта), unsigned long long или unsigned long (8 или 4 байта)) а если безразмерные массивы - то это вообще кошмар
конструкция switch - case или if-ми обойтись (при этом ифами азу меньше съедается)
хранение массивов с константами или текстовые надписи в озу или в PROGMEM

а на компах - в теперешней ситуации - отъедаемый прогой объем памяти особо не важен

моя прога - на VB - форма с несколькими текстбоксами и лэблами, в коде - создается http-запрос через проксю, получается ответ, если пришло то что надо - сохраняется, если нет, то закрываем запрос, ждем, и повторяем
отъедает памяти от 25М до 50М (от чего зависит - не знаю и мне особо не интересно)
COMFY - ма-га-зин суууу-пееер-обмааа-на
хамоватые "посетители" kramatorsk.info - я вас люблю
компания #ВОЛЯ #VOLIA - пособник террористов
#РоссииУжеНет

"Коля - хороший парень"
"Нэ провоцюйтэ!"
Тут є "московська зозуля"

власти приходится воровать (с) Карл Волох

30 Березень 2018, 00:11:17
Відповідь #8
Offline

вор


Offline вор

  • *
  • Посетитель
  • Повідомлень: 70
  • Країна: zw
  • Карма: +0/-0
  • Дякую
  • Сказав: 0
  • Отримав: 1
    • Перегляд профілю
проблемы с объемом озушки для меня сейчас наиболее актуальны при программировании ардуины с 2К оперативы (или урезанный вариант - 1К)
тут уже задумываешься о типах переменных ( byte или unsigned int (1 или 2 байта), unsigned long long или unsigned long (8 или 4 байта)) а если безразмерные массивы - то это вообще кошмар
конструкция switch - case или if-ми обойтись (при этом ифами азу меньше съедается)
хранение массивов с константами или текстовые надписи в озу или в PROGMEM

а на компах - в теперешней ситуации - отъедаемый прогой объем памяти особо не важен

моя прога - на VB - форма с несколькими текстбоксами и лэблами, в коде - создается http-запрос через проксю, получается ответ, если пришло то что надо - сохраняется, если нет, то закрываем запрос, ждем, и повторяем
отъедает памяти от 25М до 50М (от чего зависит - не знаю и мне особо не интересно)
arduino не программировал, но программировал atmel на ассемблере; зачем мучать себя и железо высоким уровнем, когда есть низкий..?по vb, у вас какая версия? под виндовс и линуксом юзаю c++ c-style и то потому, что долго начинать ассемблерную оперу и часто cross-platform tools пишу..а так бы тоже пользовал ассемблер, если бы часто программировал..но я пишу одну программу в год, чаще копаюсь в чужих исходниках и дописываю и изменяю их..когда-то учавстовал в неофициальных соревнованиях ассемблерщиков на самую маленькую программу под dos по заданию(http://www.hugi.scene.org/compo/compoold.htm i'm wrestler), занял предпоследнее место, последнее занял малазиец, который сделал программу на vb, а потом переписал на ассемблере.. поэтому я у вас спрашиваю версию vb, так как немного понимаю как устроен windows  :) почему я не билл гейтс до сих пор, потому что: для того, чтобы хорошо жить нужно много работать, чтобы стать богатым нужно придумать что-то другое, так сказал один умный человек :o

30 Березень 2018, 07:00:33
Відповідь #9
Offline

_Алекс_


Offline _Алекс_

  • BANNED
  • *****
  • Ветеран
  • Повідомлень: 4006
  • Країна: ua
  • Карма: +89/-12
  • Дякую
  • Сказав: 368
  • Отримав: 547
  • 20 Декабрь 2009/26 Декабрь 2018
    • Чоловіча
    • Перегляд профілю
 у меня программерство - хобби - программа в 2-5 лет (это при условии что удается побороть лень), так что ассемблер мне не нужен  :?
в настоящее время использую Visual Studio 2015 - в ней VB и С++ (для ардуины-Atmel, ну ARM Stm32/stm8 буду щупать у stm32 аж 20К ОЗУ), ну и по мелочам VBA в excel
COMFY - ма-га-зин суууу-пееер-обмааа-на
хамоватые "посетители" kramatorsk.info - я вас люблю
компания #ВОЛЯ #VOLIA - пособник террористов
#РоссииУжеНет

"Коля - хороший парень"
"Нэ провоцюйтэ!"
Тут є "московська зозуля"

власти приходится воровать (с) Карл Волох

30 Березень 2018, 08:55:35
Відповідь #10
Offline

Mr.Bean


Offline Mr.Bean

  • ***
  • Постоялец
  • Повідомлень: 708
  • Країна: 00
  • Карма: +9/-2
  • Дякую
  • Сказав: 12
  • Отримав: 39
    • Чоловіча
    • Перегляд профілю
а на компах - в теперешней ситуации - отъедаемый прогой объем памяти особо не важен
Похоже, так мыслят все нынешние разработчики ПО :( В первую очередь браузеров...

01 Квітень 2018, 00:15:15
Відповідь #11
Offline

вор


Offline вор

  • *
  • Посетитель
  • Повідомлень: 70
  • Країна: zw
  • Карма: +0/-0
  • Дякую
  • Сказав: 0
  • Отримав: 1
    • Перегляд профілю
у меня программерство - хобби - программа в 2-5 лет (это при условии что удается побороть лень), так что ассемблер мне не нужен  :?
смотря куда мигрирует хобби, если потухнет, то не нужен, а если к профессионализму, то без ассемблера не обойтись..

Форум Краматорська

Re: ram vs cpu или так ли не прав был билл гейтс!
« Відповідь #11 : 01 Квітень 2018, 00:15:15 »