Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - zboj

Stran: 1 ... 98 99 [100] 101
1486
Vývoj / Re:Java bez garbage collectoru
« kdy: 06. 04. 2014, 22:32:28 »
cetl jsem na foru, ze se da pouzivat java s vypnutym gc. mate stim nekdo zkusenost, je to mozne a bezpecne? dik.

tady citace:
quite a lot of what banks call low latency is done in Java. And not even Real Time Java - just normal Java with the GC turned off. The main trick here is to make sure you've exercised all of your code enough for the jit to have run before you switch a particular VM into prod ( so you have some startup looping that runs for a couple of minutes - and hot failover).

Jde to, ale asi to není úplně dobrý nápad. To už je lepší využívat nativní paměť (mimo haldu JVM).

1487
Vývoj / Re:Začátky v Javě
« kdy: 02. 04. 2014, 16:20:12 »
este pre zboja a python rest

https://gist.github.com/anonymous/9933517

Dík. Já myslel, že to má být z databáze. Mrknu na to blíže večer.

1488
Vývoj / Re:Začátky v Javě
« kdy: 02. 04. 2014, 16:19:12 »
C++ verzia (dufam ze tam nemam chybu):
Kód: [Vybrat]
#include <vector>
#include <limits>
#include <chrono>
#include <iostream>
#include <cstdlib>


const int INT_MAX = std::numeric_limits<int>::max();

int compute (int count, int start, int stop, const std::vector<int> &weight)
{
  std::vector<bool> invalid(count, false);
  std::vector<int> distance(count, INT_MAX);
       
  int u = start;
  distance[u] = 0;
       
  while(u != stop) {
    invalid[u] = true;
           
    int minDistance = distance[u];
    int min = INT_MAX;
           
    for (int v = 0; v < count; ++v) {
      if (invalid[v]) {
        continue;
      }
               
      int distanceThroughU = minDistance + weight[u * count + v];
               
      if (distanceThroughU < distance[v]) {
        distance[v] = distanceThroughU;
      }
               
      if (distance[v] < min) {
        u = v;
        min = distance[v];
      }
    }
  }
       
  return distance[u];
}

int main(int argc, char **argv)
{
  auto start = std::chrono::high_resolution_clock::now();

  const int COUNT = 5000;
  std::vector<int> weight(COUNT * COUNT);
  srand(time(0));

  for (int i = 0; i < COUNT * COUNT; ++i) {
    weight[i] = (random() % 100) + 1;
  }       

  int res = compute(COUNT, 0, COUNT - 1, weight);

  auto end = std::chrono::high_resolution_clock::now();

  int duration = std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count();
  std::cout << "result: " << res << std::endl;
  std::cout << "time  : " << duration << std::endl;
       
  return 0;
}

Casy (priemer 50 spusteni, prvy stlpec je vypis casu s programu, druhy s programu time):

Java : 479ms, real 561ms
G++  : 373ms, real 384ms
Clang: 362ms, real 376ms

Java verziu som spustal len prikazom time java Dijkstra, mozno by to poladil nejaky parameter?
C++ verzie su kompilovane prikazmi (medzi -O2 a -O3 nieje podstatny rozdiel):

g++ -std=c++11 -O2 Dijkstra.cpp -o Dijkstra_gcc
clang++ -std=c++11 -O2 Dijkstra.cpp -o Dijkstra_clang


U vectoru asi rozdíl nebude, ale zkusil bych to clangem s libc++ (místo libstdc++).

1489
Vývoj / Re:Začátky v Javě
« kdy: 02. 04. 2014, 10:01:30 »
Pokud potřebujete systém s garantovanou maximální latencí, nemůžete vzít běžný OS, ale musíte použít realtime OS. Úplně stejně nemůžete použít běžnou desktopovou Javu od Oracle, ale musíte použít realtime JVM. Stop-the-world na potenciálně neomezenou dobu totiž není principiální vlastnost GC, je to vlastnost pouze některých implementací.

Java na tom vlastně není vůbec špatně, když většina její kritiky pramení z neznalosti.

Kritika všeho pramení obvykle z neznalosti. Pak je problém, když je založená na znalostech a zkušenostech a naváží se do ní trotli...

1490
Vývoj / Re:Začátky v Javě
« kdy: 02. 04. 2014, 09:59:35 »
ale jinak budme radi za javu... aspon to vsude okolo neni php vs. asp/.net.

Svatá pravda :)

1491
Vývoj / Re:Začátky v Javě
« kdy: 01. 04. 2014, 13:17:12 »
Citace
Dodatek: Jaký programátor navíc? Předpokládám, že nám jde o shodnou funkčnost.
on myslel to, ze server stoji 2000 eur, a to je cena, za ktoru si zaplatite mesiac programatora

onu moju rest ulohu si v pythone nasadite asi na 10 riadkov

lebo nejde len o rychlost do dodania, ale aj udrzovatelnost, a hlavne to, ake schopnosti a znalosti ma vas team, a co sa stane, ked team nebude.

Můžu těch 10 řádků vidět? Python sice není moje parketa, ale předpokládám, že rozdíly budou jen v syntaxi.

1492
Vývoj / Re:Začátky v Javě
« kdy: 01. 04. 2014, 13:07:00 »
Pak tu může být ještě otázka snadnoti použití těch knihoven. Je třeba v C++ něco (a tu otázku myslím vážně, ne jako chyták), co lze použít tak snadno jako RMI?

S RPC mám zkušenosti spíše v ObjC (kde to je jednodušší než v Javě), ale co si tak matně vzpomínám, v C++ jde jednoduše napsat proxy pomocí variadic templates.

1493
Vývoj / Re:Začátky v Javě
« kdy: 01. 04. 2014, 12:24:18 »
Já dělal roky v Javě, C++ a ObjC (snad jen v .NET méně) a ze zkušenosti vím, že rozdíly mezi platformami (=jazyk+knihovna) se projeví při použití na omezeném hardwaru (pomalý procesor a/nebo málo paměti), například první iPhony nebo v poslední době Raspberry Pi apod. Na serveru s osmijádrem a 32GB paměti se případná nevýhoda projeví jen u velké aplikace a dost nedeterministicky. Ovšem zvolením lepší technologie by třeba pro stejnou aplikaci stačil méně výkonný server a hravě by ji zvládl, do toho už ovšem málokdo vidí. Až budeme mít použitelné chytré hodinky s SDK, opět se ukáže rozdíl mezi různými platformami.

On je ale i rozdíl v rychlosti vývoje. Takový server s osmijádrem a 32GB paměti vyjde asi levněji než programátor navíc.

Dodatek: Jaký programátor navíc? Předpokládám, že nám jde o shodnou funkčnost.

1494
Vývoj / Re:Začátky v Javě
« kdy: 01. 04. 2014, 12:22:41 »
Já dělal roky v Javě, C++ a ObjC (snad jen v .NET méně) a ze zkušenosti vím, že rozdíly mezi platformami (=jazyk+knihovna) se projeví při použití na omezeném hardwaru (pomalý procesor a/nebo málo paměti), například první iPhony nebo v poslední době Raspberry Pi apod. Na serveru s osmijádrem a 32GB paměti se případná nevýhoda projeví jen u velké aplikace a dost nedeterministicky. Ovšem zvolením lepší technologie by třeba pro stejnou aplikaci stačil méně výkonný server a hravě by ji zvládl, do toho už ovšem málokdo vidí. Až budeme mít použitelné chytré hodinky s SDK, opět se ukáže rozdíl mezi různými platformami.

On je ale i rozdíl v rychlosti vývoje. Takový server s osmijádrem a 32GB paměti vyjde asi levněji než programátor navíc.

A v čem přesně se ta rychlost vývoje liší (za předpokladu, že vždy použijeme dostupné knihovny pro rutinní záležitosti)?

1495
Vývoj / Re:Začátky v Javě
« kdy: 01. 04. 2014, 12:04:31 »
deploynite mi REST server pre fiktivny obchod, nad HTTP, payloady nech idu JSONom. nech mam operaciu pre zoznam tovarov (id, nazov, pocet kusov na sklade). a nech mam operaciu pre nakup, ktora ma na vstupe id tovaru, a vysledkom je znizenie poctu kusov daneho tovaru na sklade o jedna
Tohle mi připomíná jeden hezký citát z knihy Programátorské poklesky o komunikaci programátorů:

„Ten sort s apdejtovanejma opšnama mi vypliv mraky vórningů, tak jsem džob po čekpointu típnul, Svičnul jsem se pod sysmana a zkolektoval júzrhuky, ale hodilo to systém eror.“

„Zkus dylítnout vérkfajly a vyendovat se. Pak to exekni z meku do malýho beče s trasováním na olejblovanou pásku a autput esajnuj na flopáč. Jestli to krešne, vylistuj žurnál s dampem, kilni spůlfajly a před odlogováním vytancuj modulovou. Oukej?“


Snažím se tím jen říct, že pro většinu lidí, kteří se tomu denně nevěnují, to bude španělská vesnice, ale nic to nedokazuje o vhodnosti použit Javy/C++/čehokoliv jiného.

Ta "vhodnost" je dána tím, co dotyčný diskutující zná. "Svou" technologii hájí do krve a zbytek haní (asi nějaký podvědomý obranný reflex, jako když dítěti chcete vzít hračku, nevím, nejsem psycholog). Já dělal roky v Javě, C++ a ObjC (snad jen v .NET méně) a ze zkušenosti vím, že rozdíly mezi platformami (=jazyk+knihovna) se projeví při použití na omezeném hardwaru (pomalý procesor a/nebo málo paměti), například první iPhony nebo v poslední době Raspberry Pi apod. Na serveru s osmijádrem a 32GB paměti se případná nevýhoda projeví jen u velké aplikace a dost nedeterministicky. Ovšem zvolením lepší technologie by třeba pro stejnou aplikaci stačil méně výkonný server a hravě by ji zvládl, do toho už ovšem málokdo vidí. Až budeme mít použitelné chytré hodinky s SDK, opět se ukáže rozdíl mezi různými platformami.

1496
Vývoj / Re:Začátky v Javě
« kdy: 01. 04. 2014, 11:53:31 »
To je hezké zadání. Použijeme třeba Casablancu (pro http a json) a kód vlastní business logiky bude zhruba stejný jako v Javě nebo C#. Rychlost bude dána sítí. Jen memory footprint bude nižší. Ještě nějaký pokus?

Jak by se řešil přístup do databáze? V Javě existuje například hibernate, v podstatě stačí pár anotací a o zbytek se postará sám.

Není tady Hibernate trochu overkill? Osobně bych použil normální relační databází s SQL, nicméně existují i objektové databáze pro C++, a bez (explicitních) anotací. I v Javě bych použil spíše db4o.

1497
Vývoj / Re:Začátky v Javě
« kdy: 01. 04. 2014, 09:53:36 »
deploynite mi REST server pre fiktivny obchod, nad HTTP, payloady nech idu JSONom. nech mam operaciu pre zoznam tovarov (id, nazov, pocet kusov na sklade). a nech mam operaciu pre nakup, ktora ma na vstupe id tovaru, a vysledkom je znizenie poctu kusov daneho tovaru na sklade o jedna

To je hezké zadání. Použijeme třeba Casablancu (pro http a json) a kód vlastní business logiky bude zhruba stejný jako v Javě nebo C#. Rychlost bude dána sítí. Jen memory footprint bude nižší. Ještě nějaký pokus?

1498
Vývoj / Re:Začátky v Javě
« kdy: 30. 03. 2014, 04:14:40 »
Nechápu k čemu je zkušenému programátorovi garbage collector. V každé serióznější aplikaci se stejně musí uvolňovat paměť (tedy odstraňovat reference). Přitom s GC nemůžete používat RAII, což mi přijde jako podstatná součást objektově orientovaného programování.

Měl bych další dotaz: neměl by být robustní, kvalitní a moderní jazyk kompilovaný do strojového kódu?  Nějak nevidím výhody toho, aby byl jazyk podobného typu jako Java interpretovaný. Dnes už to má jen samé nevýhody.

JIT překládá do nativního kódu, akorát že až za běhu (což má výhody i nevýhody).

1499
Vývoj / Re:Začátky v Javě
« kdy: 29. 03. 2014, 07:09:43 »
Java sa pouziva, ale na backendoch. Za zenitom urcite nie je, lebo .net bezi iba na windows a node.js je pre enterprise prilis velke riziko, aj ked si na tom fici paypal. Uz len portovat vsetky tie db ovladace, adaptery a ja neviem co stoji zbytocne velke prachy. Taky twitter presiel na javu kvoli vykonu. Dnes je moderne asynchronne programovanie a tam ma java napr. oproti .netu medzery, ale inak zvlada vsetko co treba. Pravdupovediac keby bezal .net pod linuxom (mono nema vykon), tak asi prejdem nan.

Má praktická zkušenost je, že Mono je serveru s ARM 4x rychlejší než Java a v podstatě se rychlostí blíží nativní aplikaci.

1500
Vývoj / Re:Začátky v Javě
« kdy: 28. 03. 2014, 16:41:06 »
Ahoj :-),
začala jsem se učit Javu, ale slyšela jsem(místní blog), že se již nepoužívá. Je to pravda????

Děkuji  ;)

Fráze "být za zenitem" znamená, že má nejlepší za sebou, ne, že se nepoužívá ani že je nějak zvlášť špatná :) Pořád patří k populárním jazykům a podle mého skromného názoru je dobré znát jazyků co nejvíc. Java, C#, C++, ObjC (mimo mainstream ještě Lisp, Prolog, Smalltalk) je rozhodně dobré znát aspoň zběžně kvůli nadhledu.

Stran: 1 ... 98 99 [100] 101