English | Magyar
JS ki | CSS ki | Ékezetek ki | HiContrast
Lapozó:  (0 - 1424) 
<== | ==>
Ugrás a végére | Összes megjelenítése | Utolsó oldal
OpenOpera patches | Opera-SSL patches | Opera 12.15 source (Git repository) | Opera 12.15 source (Torrent) | Opera internal pages | Otter Browser Linux x64 - Qt5.15.2/QtWebKit5.602.1 (2024.04.27. 20:05)
OS for MC680x0 | OS for PPC | OS for Sparc64 | besztofbégéaefcé | CSÉNDZSLOG | WebToolz | DDG Shit Filter | Google Shit Filter | Progz | Fast CSS Box | Browser | OS | Agent | Statisztika | BBCode
Monospace font-family: Courier New | Browser default monospace
Email értesítő / Email notification ===> 
Keresés
Σ: 16 post

TCH  (statz) Főfasz
#1, Főfasz (10443)
586 | #2440 | ^ | Idézet | Thu, 14 Mar 2013 23:57:26 +01
78.92.*.* Linux x86 Opera Classic Hungary *.catv.pool.telekom.hu
@kemi:
Linux alatt tök jól működik a pécé előlapi fejhallgató csatlakozója, viszont winfos alatt bele kellett hekkelni a driverbe. :P (Na jó, ez lehet, hogy nem a mikrofos, hanem a driver hibája.)
Hát ki írta a drájvert?
@kemi:
A kettő között van valami különbség abban, hogy milyen gépi kódra fordul?
Természetesen, a C++ egy viszonylag kompakt kódot fog eredményezni, a másik kettő meg egy bloatware foshegyet, ami ráadásul 50x lassabb lesz a C/C++ verziónál.
http://index.hu/tech/2013/03/14/tulmelegedes_okozta_az_outlook_leallasat/
XDDDDDDDDDDDDDDDDDDDDDDDD


kemi  (statz) Főfasz
#2, Főfasz (2970)
489 | #2441 | ^ | Idézet | Fri, 15 Mar 2013 07:57:55 +01
178.164.*.* Linux x86 Google Chrome Hungary *.pool.digikabel.hu
@TCH:
Természetesen, a C++ egy viszonylag kompakt kódot fog eredményezni, a másik kettő meg egy bloatware foshegyet, ami ráadásul 50x lassabb lesz a C/C++ verziónál.
Úgy értettem, hogy aközött van-e különbség, ha C++-ban osztályba csomagolva valósítom meg, vagy nem. Amúgy C++-ban az OOP kód is sokkal gyorsabb mint dotnetben, meg dzsuvában. Meg legalábbis abban amekkora projekteket én csináltam, nem nagy kunszt odafigyelni, hogy takaríts is el magad után, mert nincs szemétgyűjtő.


kemi  (statz) Főfasz
#2, Főfasz (2970)
267 | #2442 | ^ | Idézet | Fri, 15 Mar 2013 10:11:52 +01
178.164.*.* Linux x86 Google Chrome Hungary *.pool.digikabel.hu
Ne vegyetek Ansmann akkut, mert egy kalap fos. 2500 mAh van ráírva, de a vezeték nélküli egeremben 3 nap alatt teljesen kidöglik. Ellenben a fényképezőgépemben használt Vartákkal teljesen meg vagyok elégedve. 5 éve megvannak, és még mindig remekül bírják a gyűrődést.


TCH  (statz) Főfasz
#1, Főfasz (10443)
1278 | #2443 | ^ | Idézet | Fri, 15 Mar 2013 12:35:15 +01
78.92.*.* Linux x86 Opera Classic Hungary *.catv.pool.telekom.hu
@kemi:
Úgy értettem, hogy aközött van-e különbség, ha C++-ban osztályba csomagolva valósítom meg, vagy nem.
Ja. Lesz. Az OOP kód nagyobb és lassabb lesz. Persze nem annyira, mintha dzsuvában vagy cisztában csináltad volna, nagyságrendi különbség nem lesz, csak százalékos.
@kemi:
Amúgy C++-ban az OOP kód is sokkal gyorsabb mint dotnetben, meg dzsuvában.
Lévén a dzsuva meg a ciszta alapvetően kurwa lassú.
Van is egy ötletem kemi! :)
Bencsmárkoljuk ki, hogy mennyi idő alatt fut le sima C-ben, C++-ban, cisztában és dzsuvában egy kettős forciklus, a belső egymilliárd iterációval, a külső, meg ezerrel. Valamit tegyünk a belső forciklusba, amit nem hány ki az optimalizáló.
Kiváncsi vagyok hányszoros lesz a különbség a C/C++ javára.
@kemi:
Meg legalábbis abban amekkora projekteket én csináltam, nem nagy kunszt odafigyelni, hogy takaríts is el magad után, mert nincs szemétgyűjtő.
Kis odafigyeléssel, szemétgyűjtőre nem nagyon van szükség. Csak mindig oda kell figyelni arra, hogy felszabadítsd azokat az ojjektumokat, streameket, amikat használtál.
@kemi:
Vartákkal teljesen meg vagyok elégedve. 5 éve megvannak, és még mindig remekül bírják a gyűrődést.
Varta rulez. A Sony TV-m távnyomijába valami oldszkúl Varta elem van 2000 környékéről és még megy.


kemi  (statz) Főfasz
#2, Főfasz (2970)
115 | #2444 | ^ | Idézet | Fri, 15 Mar 2013 13:26:09 +01
178.164.*.* Linux x86 Google Chrome Hungary *.pool.digikabel.hu
@TCH:
Valamit tegyünk a belső forciklusba, amit nem hány ki az optimalizáló.
Ciklusváltozó kiírása megfelelő?


TCH  (statz) Főfasz
#1, Főfasz (10443)
210 | #2445 | ^ | Idézet | Fri, 15 Mar 2013 13:58:43 +01
78.92.*.* Linux x86 Opera Classic Hungary *.catv.pool.telekom.hu
@kemi:
Ciklusváltozó kiírása megfelelő?
Hát elméletileg igen, de akkor sose fut le, ha mind az egybilliószor ki kell írnia a konzolra. Csökkentsük le a belső ciklus iterációinak számát, legyen ezer az is.


kemi  (statz) Főfasz
#2, Főfasz (2970)
77 | #2446 | ^ | Idézet | Fri, 15 Mar 2013 14:38:31 +01
178.164.*.* winnyogsz Google Chrome Hungary *.pool.digikabel.hu
A külső ciklus 1000-szer, a belső 100-szor fut, mert így is kurva sokáig fut.


kemi  (statz) Főfasz
#2, Főfasz (2970)
2393 | #2447 | ^ | Idézet | Fri, 15 Mar 2013 15:04:52 +01
178.164.*.* winnyogsz Google Chrome Hungary *.pool.digikabel.hu
C/C++
#include <stdio.h>
//ugyanez a kód lefordul C meg C++ compilerrel is
int main() {
	int i, j;
	for (i = 0; i < 1000; i++) {
			for (j = 0; j < 100; j++) {
				printf("%d\n", j);
			}
		}
        return 0;
}


Java
package javatest;

public class Main {

	public static void main(String[] args) {
		for (int i = 0; i < 1000; i++) {
			for (int j = 0; j < 100; j++) {
				System.out.println(j);
			}
		}
	}

}


C#
class cs {
	static void Main() {
		for (int i = 0; i < 1000; i++) {
			for (int j = 0; j < 100; j++) {
				System.Console.WriteLine(j);
			}
		}
	}
}


PS C:\Users\kemi242\Desktop\csc> measure-command {.\c.exe}


Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 0
Milliseconds      : 978
Ticks             : 9783411
TotalDays         : 1,13233923611111E-05
TotalHours        : 0,000271761416666667
TotalMinutes      : 0,016305685
TotalSeconds      : 0,9783411
TotalMilliseconds : 978,3411



PS C:\Users\kemi242\Desktop\csc> measure-command {.\cpp.exe}


Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 1
Milliseconds      : 155
Ticks             : 11555819
TotalDays         : 1,33747905092593E-05
TotalHours        : 0,000320994972222222
TotalMinutes      : 0,0192596983333333
TotalSeconds      : 1,1555819
TotalMilliseconds : 1155,5819



PS C:\Users\kemi242\Desktop\csc> measure-command {.\cs.exe}


Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 1
Milliseconds      : 753
Ticks             : 17532178
TotalDays         : 2,02918726851852E-05
TotalHours        : 0,000487004944444444
TotalMinutes      : 0,0292202966666667
TotalSeconds      : 1,7532178
TotalMilliseconds : 1753,2178



PS C:\Users\kemi242\Desktop\csc> measure-command {java -jar java.jar}


Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 3
Milliseconds      : 867
Ticks             : 38679832
TotalDays         : 4,47683240740741E-05
TotalHours        : 0,00107443977777778
TotalMinutes      : 0,0644663866666667
TotalSeconds      : 3,8679832
TotalMilliseconds : 3867,9832


A measure-command parancs eldobja a kimenetet, az nem tudom változtat-e az eredményen valamit.


TCH  (statz) Főfasz
#1, Főfasz (10443)
321 | #2448 | ^ | Idézet | Fri, 15 Mar 2013 15:27:42 +01
78.92.*.* Linux x86 Opera Classic Hungary *.catv.pool.telekom.hu
Hát elvileg nem kéne.
Viszont az egy kicsit meglep, hogy a ciszta csak másfélszer, a dzsuva meg csak három és félszer lassabb a C++-nál.
Lehet, hogy az ilyen egyszerű algoritmusban nem tudnak mit elbaszni. :P
Próbáld meg a measure command helyett stopperral lemérni, lehet, hogy mégis számít valamit a kimenet elvesztése.


kemi  (statz) Főfasz
#2, Főfasz (2970)
525 | #2449 | ^ | Idézet | Fri, 15 Mar 2013 17:16:58 +01
178.164.*.* winnyogsz Google Chrome Hungary *.pool.digikabel.hu
Írtam egy saját time parancsot.
#include <QTime>

using namespace std;

int main(int argc, char *argv[]) {
    string command = "";
    for (int i = 1; i < argc; i++) command += argv[i] + " ";
    QTime t;
    t.start();  
    system(command.c_str());
    printf("\n%d ms\n", t.elapsed());
    return 0;
}


C:    19807 ms
C++:  19794 ms
C#:   21010 ms
Java: 20715 ms


Így viszont a sok kiírás lassít, és azért nincs olyan nagy különbség köztük.


TCH  (statz) Főfasz
#1, Főfasz (10443)
87 | #244a | ^ | Idézet | Fri, 15 Mar 2013 19:23:12 +01
78.92.*.* Linux x86 Opera Classic Hungary *.catv.pool.telekom.hu
Valami bonyolultabban kéne kipróbálni. Mit szólsz a táblakeverőalgoritmushoz az RC-ből?


kemi  (statz) Főfasz
#2, Főfasz (2970)
134 | #244b | ^ | Idézet | Fri, 15 Mar 2013 19:53:45 +01
178.164.*.* winnyogsz Google Chrome Hungary *.pool.digikabel.hu
Oké.
Töltsük fel, és utána keverjük a belső ciklusban, vagy inicializáljuk a tömböt feltöltjük, a ciklusban pedig csak keverés legyen?


TCH  (statz) Főfasz
#1, Főfasz (10443)
107 | #244c | ^ | Idézet | Fri, 15 Mar 2013 21:42:36 +01
78.92.*.* Linux x86 Opera Classic Hungary *.catv.pool.telekom.hu
Legjobb, ha a teljes algoritmus a mérés tárgyát képezi, feltöltés és keverés is.
Vagyis a #1 opció a nyerő.


kemi  (statz) Főfasz
#2, Főfasz (2970)
3382 | #244d | ^ | Idézet | Fri, 15 Mar 2013 22:14:27 +01
178.164.*.* winnyogsz Google Chrome Hungary *.pool.digikabel.hu
Igyekeztem úgy megírni, hogy az összes nyelven ugyanaz legyen. C++-ban, C#-ban, meg Javában lehet a ciklusváltozót inicializáláskor deklarálni, C-ben viszont nem. De ha a többi változó a cikluson belül van deklarálva, akkor 1000*1000 = 1 milliószor fog memóriát lefoglalni, aztán felszabadítani, ha a ciklusokon kívül történik, akkor csak egyszer).

C/C++
#include <stdlib.h>
#include <time.h>

int main() {
	srand(time(NULL));
	int table[256];
	int i, j, k, r, temp;
	for (i = 0; i < 1000; i++) {
		for (j = 0; j < 1000; j++) {
			for (k = 0; k < 256; k++) table[k] = k;
			for (k = 0; k < 256; k++) {
				r = rand() & 255;
				temp = table[r];
				table[r] = table[k];
				table[k] = temp;
			}
		}
	}
}

C#
using System;

class cs {
	static void Main() {
		Random rand = new Random();
		int[] table = new int[256];
		int i, j, k, r, temp;
		for (i = 0; i < 1000; i++) {
			for (j = 0; j < 1000; j++) {
				for (k = 0; k < 256; k++) table[k] = k;
				for (k = 0; k < 256; k++) {
					r = rand.Next(256);
					temp = table[r];
					table[r] = table[k];
					table[k] = temp;
				}
			}
		}
	}
}

Java
package javatest;

import java.util.Random;

public class Main {

	public static void main(String[] args) {
		Random rand = new Random();
		int[] table = new int[256];
		int i, j, k, r, temp;
		for (i = 0; i < 1000; i++) {
			for (j = 0; j < 1000; j++) {
				for (k = 0; k < 256; k++) table[k] = k;
				for (k = 0; k < 256; k++) {
					r = rand.nextInt(256);
					temp = table[r];
					table[r] = table[k];
					table[k] = temp;
				}
			}
		}
	}
}


PS C:\Users\kemi242\Desktop\csc> measure-command {.\c.exe}


Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 10
Milliseconds      : 766
Ticks             : 107667192
TotalDays         : 0,000124614805555556
TotalHours        : 0,00299075533333333
TotalMinutes      : 0,17944532
TotalSeconds      : 10,7667192
TotalMilliseconds : 10766,7192



PS C:\Users\kemi242\Desktop\csc> measure-command {.\cpp.exe}


Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 10
Milliseconds      : 512
Ticks             : 105126138
TotalDays         : 0,000121673770833333
TotalHours        : 0,0029201705
TotalMinutes      : 0,17521023
TotalSeconds      : 10,5126138
TotalMilliseconds : 10512,6138



PS C:\Users\kemi242\Desktop\csc> measure-command {.\cs.exe}


Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 8
Milliseconds      : 175
Ticks             : 81750915
TotalDays         : 9,46191145833333E-05
TotalHours        : 0,00227085875
TotalMinutes      : 0,136251525
TotalSeconds      : 8,1750915
TotalMilliseconds : 8175,0915



PS C:\Users\kemi242\Desktop\csc> measure-command {java -jar java.jar}


Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 3
Milliseconds      : 353
Ticks             : 33531529
TotalDays         : 3,88096400462963E-05
TotalHours        : 0,000931431361111111
TotalMinutes      : 0,0558858816666667
TotalSeconds      : 3,3531529
TotalMilliseconds : 3353,1529


Vagy szar a gcc winfos alatt, vagy én kúrtam el valamit, vagy C#-ban meg Javában agyon van optimalizálva a tömbkeverés. :P


TCH  (statz) Főfasz
#1, Főfasz (10443)
333 | #244e | ^ | Idézet | Fri, 15 Mar 2013 23:17:42 +01
78.92.*.* Linux x86 Opera Classic Hungary *.catv.pool.telekom.hu
Milyen O paraméterrel futtattad a GCC-t? Ha semmilyennel, akkor futtasd O2 vagy O3 parammal.
Meg próbáld ki a rnd2()-vel is, ne csak a beépítettel, lehet hogy abban van a turpisság, mert C/C++-ban van valamilyen random, cisztában/dzsuvában meg return 4; :P


kemi  (statz) Főfasz
#2, Főfasz (2970)
1022 | #244f | ^ | Idézet | Fri, 15 Mar 2013 23:23:23 +01
178.164.*.* winnyogsz Google Chrome Hungary *.pool.digikabel.hu
PS C:\Users\kemi242\Desktop\csc> measure-command {.\c.exe}


Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 7
Milliseconds      : 223
Ticks             : 72233792
TotalDays         : 8,36039259259259E-05
TotalHours        : 0,00200649422222222
TotalMinutes      : 0,120389653333333
TotalSeconds      : 7,2233792
TotalMilliseconds : 7223,3792



PS C:\Users\kemi242\Desktop\csc> measure-command {.\cpp.exe}


Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 7
Milliseconds      : 119
Ticks             : 71193099
TotalDays         : 8,23994201388889E-05
TotalHours        : 0,00197758608333333
TotalMinutes      : 0,118655165
TotalSeconds      : 7,1193099
TotalMilliseconds : 7119,3099


-O3 kapcsolóval már jobb egy picivel. A Java nem tudom miért olyan gyors. Lehet, hogy valami jobb randomgenerátor algoritmus van beléjük építve, meg kéne próbálni abból is a miénket használni.


English | Magyar
JS ki | CSS ki | Ékezetek ki | HiContrast
Lapozó:  (0 - 1424) 
<== | ==>
Ugrás a végére | Összes megjelenítése | Utolsó oldal
OpenOpera patches | Opera-SSL patches | Opera 12.15 source (Git repository) | Opera 12.15 source (Torrent) | Opera internal pages | Otter Browser Linux x64 - Qt5.15.2/QtWebKit5.602.1 (2024.04.27. 20:05)
OS for MC680x0 | OS for PPC | OS for Sparc64 | besztofbégéaefcé | CSÉNDZSLOG | WebToolz | DDG Shit Filter | Google Shit Filter | Progz | Fast CSS Box | Browser | OS | Agent | Statisztika | BBCode
Monospace font-family: Courier New | Browser default monospace
Email értesítő / Email notification ===> 
Keresés

Név: (max 255 byte)

Email: (max 255 byte) Nem kötelező!

Üzenet: (max 65536 kar.) 65536-0=65536




crap_vkn v4.34.0 by TCH
Thx to saxus for the escaped string decoder function (PHP), the realIP function (PHP) & the SQL handle layer (PHP), to thookerov for the int_divide function (PHP), to Jeff Anderson for the getSelText function (JS), to Alex King for the insertAtCursor function (JS), Flood3r for the new CSS styles, Pety for the spamprotection idea and some design and comfort ideas, MaxMind for the IP2Country database, famfamfam for the flags of countries and an unknown PHP programmer for the removeAccents function.



Kecskebaszók ide!