LINUXSOFT.cz Přeskoč levou lištu
Uživatel: Heslo:  
   CZUKPL

> Diskuze: článek Šachové myšlení (10) - Tahy

java a alokace pameti
(link)
9.11.2009 01:22
Radim Kolář
Věk: ( ~44 let) , Bydliště: Louny

V jave je alokace pameti mnohem rychlejsi nez v C++. Mam k tomu nejake slajdy z konference:

Garbage Collection is often faster than malloc/free
– Object allocation is on the order of 10 instructions
– Malloc implementations are 60 to 100 instructions
– Cost of freeing an object can be around 1 instruction per object
– Free implementations average ~100 instructions

Re: java a alokace pameti
(link)
9.11.2009 08:23
Aleš Hakl
Bydliště: Praha

Ono nejde az tak moc o tu alokaci jako o ty velke objektove struktury na heapu a tomu se clovek v Jave proste moc rozumne nevyhne.

Re: java a alokace pameti
(link)
9.11.2009 08:50
Jan Němec
Věk: ( ~40 let)

Schválně si to někdy změřím :-)

Re: java a alokace pameti
(link)
9.11.2009 23:01
Jan Němec
Věk: ( ~40 let)

Tak jsem si to změřil a zdá se že máte pravdu. Je to zajímavé. Špatně napsaný příklad v Javě je 3 krát rychlejší než stejně špatně napsaný příklad v C++. (Akorát, že v C++ by nikoho nenapadlo mít std::vector<CiselnaTrida *>, ale byl by tam std::vector<int>.)

import java.util.Vector;
import java.util.Date;

public class Mereni {

static int[] pole = {38, 20, 30, 15, 5, 12, 1, 17, 51, 25};
static int index = 0;

static int random() {
index %= pole.length;
return pole[index++];
}

static Vector<Integer> generujTahy() {
Vector<Integer> tahy = new Vector<Integer>();
int tahu = random();
for (int i = 0; i < tahu; i++)
tahy.add(new Integer(random()));
return tahy;
}

static int propocet(int hloubka) {
if (hloubka <= 0) return random();
Vector<Integer> tahy = generujTahy();
int r = 0;
for (int i = 0; i < tahy.size(); i++) {
r += propocet(hloubka - 1) + tahy.elementAt(i);
}
return r;
}
public static void main(String[] args) {
for (int i = 0; i < 7; i++) {
System.out.println("Propočet do hloubky " + i + " vrátil " + propocet(i) + " v čase " + new Date());
}
}
}

----------------------

#include <vector>
#include <stdio.h>
#include <time.h>

int pole[] = {38, 20, 30, 15, 5, 12, 1, 17, 51, 25};
int index = 0;
int random() {
index %= (sizeof(pole) / sizeof(pole[0]));
return pole[index++];
}

class Cislo {
private:
int m_data;
public:
Cislo(int data): m_data(data){};
int getData() {return m_data;};
};

std::vector<Cislo *> *generujTahy() {
std::vector<Cislo *> *tahy = new std::vector<Cislo *>;
int tahu = random();
for (int i = 0; i < tahu; i++)
tahy->push_back(new Cislo(random()));
return tahy;
}

int propocet(int hloubka) {
if (hloubka <= 0) return random();
std::vector<Cislo *> *tahy = generujTahy();
int r = 0;
for (int i = 0; i < tahy->size(); i++) {
r += propocet(hloubka - 1) + (*tahy)[i]->getData();
delete (*tahy)[i];
}
delete tahy;
return r;
}

int main(void) {
for (int i = 0; i < 7; i++) {
int r = propocet(i);
printf("Propočet do hloubky %i vrátil %i v čase %i\n", i, r, (int)time(NULL));
}
return 0;
}

Re: java a alokace pameti
(link)
9.11.2009 23:08
Jan Němec
Věk: ( ~40 let)

Ona je ta java v poměru 3:2 rychlejší i v porovnání s C++ a std::vector<int>. To už je fakt bomba.

dama
(link)
13.11.2009 21:03
Radim Kolář
Věk: ( ~44 let) , Bydliště: Louny

Nemohla by byt probirana taky dama? Myslim tim ohodnocovaci funkci, zbytek bude zhruba stejny, pripadne jednodussi. Ja bych si rad zkusil nekdy naprogramovat damu.

Re: dama
(link)
15.11.2009 13:34
Jan Němec
Věk: ( ~40 let)

S dámou bohužel nemám zkušenosti ani teoretické znalosti, tak neposloužím. Myslím, že jinak bude nejen ohodnocovací funkce, ale i část prohlubovacích a ořezávacích heuristik.

Odhad konstanty MNOHO
(link)
16.4.2010 19:04
Marika Ivanová
Věk: ( ~29 let)

Dobrý den,
v článku je uvedeno, že konstanta MNOHO udávající velikost pole, do kterého ukládáme všechny vygenerované tahy je součin max. počtu tahů z dané pozice a maximální hloubky prohledávacího stromu. To mi ale nedává smysl, protože počet těch tahů přece roste exponenciálně se vzrůstající hloubkou zanoření. Nemělo by tedy být MNOHO = MAX_POCET_TAHU^MAX_HLOUBKA_PROHLEDAVANI ? Možná jsem to ale nepochopila, můžete mi to objasnit?

Re: Odhad konstanty MNOHO
(link)
17.4.2010 02:51
Marika Ivanová
Věk: ( ~29 let)

Aha, už tomu asi rozumím. V tom poli jsou uloženy tahy patřící pouze konkrétní cestě z kořene do určitého listu...

Re: Odhad konstanty MNOHO
(link)
19.4.2010 09:34
Jan Němec
Věk: ( ~40 let)

Ano, rozumíte tomu teď správně. To jste o tom v noci přemýšlela? :-)

DISKUZE

java a alokace pameti 9.11.2009 01:22 Radim Kolář
|- Re: java a alokace pameti 9.11.2009 08:23 Aleš Hakl
|- Re: java a alokace pameti 9.11.2009 08:50 Jan Němec
L Re: java a alokace pameti 9.11.2009 23:01 Jan Němec
  L Re: java a alokace pameti 9.11.2009 23:08 Jan Němec
dama 13.11.2009 21:03 Radim Kolář
L Re: dama 15.11.2009 13:34 Jan Němec
Odhad konstanty MNOHO 16.4.2010 19:04 Marika Ivanová
  L Re: Odhad konstanty MNOHO 17.4.2010 02:51 Marika Ivanová
    L Re: Odhad konstanty MNOHO 19.4.2010 09:34 Jan Němec




Příspívat do diskuze mohou pouze registrovaní uživatelé.
> Vyhledávání software
> Vyhledávání článků

13.9.2017 8:00 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Zajímá tě DIY, CNC, SDR nebo morseovka? Přijď na sraz spolku OpenAlt – tentokrát netradičně v pondělí: 18. září od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5).
Přidat komentář

3.9.2017 20:45 /Redakce Linuxsoft.cz
PR: Dne 21. září 2017 proběhne v Praze konference "Mobilní řešení pro business". Hlavní tématy konference budou: nejnovější trendy v oblasti mobilních řešení pro firmy, efektivní využití mobilních zařízení, bezpečnostní rizika a řešení pro jejich omezení, správa mobilních zařízení ve firmách a další.
Přidat komentář

15.5.2017 23:50 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Zajímá tě DIY, CNC, SDR nebo morseovka? Přijď na sraz spolku OpenAlt, který se bude konat ve čtvrtek 18. května od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5).
Přidat komentář

12.5.2017 16:42 /Honza Javorek
PyCon CZ, česká konference o programovacím jazyce Python, se po dvou úspěšných ročnících v Brně bude letos konat v Praze, a to 8. až 10. června. Na konferenci letos zavítá např. i Armin Ronacher, známý především jako autor frameworku Flask, šablon Jinja2/Twig, a dalších projektů. Těšit se můžete na přednášky o datové analytice, tvorbě webu, testování, tvorbě API, učení a mentorování programování, přednášky o rozvoji komunity, o použití Pythonu ve vědě nebo k ovládání nejrůznějších zařízení (MicroPython). Na vlastní prsty si můžete na workshopech vyzkoušet postavit Pythonem ovládaného robota, naučit se učit šestileté děti programovat, efektivně testovat nebo si v Pythonu pohrát s kartografickým materiálem. Kupujte lístky, dokud jsou.
Přidat komentář

2.5.2017 9:20 /Eva Rázgová
Putovní konference československé Drupal komunity "DrupalCamp Československo" se tentokrát koná 27. 5.2017 na VUT FIT v Brně. Můžete načerpat a vyměnit si zkušenosti z oblasti Drupalu 7 a 8, UX, SEO, managementu týmového vývoje, využití Dockeru pro Drupal a dalších. Vítáni jsou nováčci i experti. Akci pořádají Slovenská Drupal Asociácia a česká Asociace pro Drupal. Registrace na webu .
Přidat komentář

1.5.2017 20:31 /Pavel `Goldenfish' Kysilka
PR: 25.5.2017 proběhne v Praze konference na téma Firemní informační systémy. Hlavními tématy jsou: Informační systémy s vlastní inteligencí, efektivní práce s dokumenty, mobilní přístup k datům nebo využívání cloudu.
Přidat komentář

15.4.2017 15:20 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Zajímá tě IoT a radiokomunikace? Přijď na sraz spolku OpenAlt, který se bude konat ve středu 19. dubna od 18:30 v Šenkovně (Sokolská 60, Praha 2).
Přidat komentář

5.3.2017 19:12 /Redakce Linuxsoft.cz
PR: 23. března proběhne v Praze konferenci na téma Cloud computing v praxi. Hlavními tématy jsou: Nejžhavější trendy v oblasti cloudu a cloudových řešení, Moderní cloudové služby, Infrastruktura současných cloudů, Efektivní využití cloudu, Nástrahy cloudových řešení a jak se jim vyhnout.
Přidat komentář

   Více ...   Přidat zprávičku

> Poslední diskuze

18.9.2017 14:37 / Rojas
high security vault

15.9.2017 7:33 / Wilson
new zealand childcare jobs

31.8.2017 12:11 / Jaromir Obr
Re: ukůládání dat ze souboru

30.7.2017 11:12 / Jaromir Obr
Národní znaky

27.7.2017 12:24 / Jaromir Obr
Cteni/zapis

Více ...

ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2017) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze