- Az MSI RadiX AXE6600 tesztje – router, játékosoknak
- Hálózati / IP kamera
- Mobilinternet
- 3 évig még biztosan nem rendelhetünk Xiaomi EV-t
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- HBO Max & OD topic
- Milyen program, ami...?
- Aliexpress tapasztalatok
- Microsoft Office és Office 365 topic
- Microsoft Outlook topic
-
IT café
Új hozzászólás Aktív témák
-
pmonitor
aktív tag
válasz Mechorganic #15287 üzenetére
Esetleg még azt lehet csinálni, hogy az egészet megírod C-ben/C++-ban. A sebességkritikus rész(ek) kódját megnézed, és ha találsz benne olyan részt, ahol szted lehet gyorsítani, akkor azokat megírhatod C-be/C++-ba ágyazott assemblyben. Macerás, de ha a gyorsaság számít, akkor talán ez a legegyszerűbb.
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
-
pmonitor
aktív tag
válasz Domonkos #15302 üzenetére
Pl. klasszikus eset a kis- nagybetű konverzió. Ez az általános eset:
if (c >= 'a' && c <= 'z') {
c -= 32;
}
else if (c >= 'A' && c <= 'Z') {
c += 32;
}ezt meg lehet így is oldani:
if (c >= 'a' && c <= 'z') {
c ^= 32;
}
else if (c >= 'A' && c <= 'Z') {
c ^= 32;
}Észreveszi a fordító?
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz Livius #15310 üzenetére
Sztem félreértetted a kérdésem. Az első formulát írod forráskódba. Ebből kellene észrevennie a fordítónak, hogy a második formulára alakítható a forráskód. Tehát az első kódból is ugyanazt kellene generálnia, mint a másodikból. Ezt nem ismerte fel.
szerk.: az összeadás-kivonás lassabb, mint a XOR.
[ Szerkesztve ]
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz Livius #15313 üzenetére
a gcc-nek nem az a feladata hogy a te C nyelvedet alakítsa alternatív jobbra
Sztem az lenne a feladata, hogy amit az alkotó C-ben ír, azt hajtsa végre a megfelelő beállítás mellett. Tehát, ha az alkotó arra utasítja pl. a -Ofast-al, hogy optimális kódot állítson elő, akkor azt kellene csinálnia. Nem véletlenül írta kovisoft:
Ez a gyakorlatban úgy szokott történni, hogy megnézed, milyen kódot generált a sebességre optimalizált fordító, átírod olyanra, ahogy szerinted gyorsabb lenne, kipróbálod, majd nyugtázod, hogy a te verziód lassabb lett, és mégis a fordító tudta jobban.
Ő is a sebességre optimalizált fordítóra hivatkozik. Akkor szted mit jelent a sebességre optimalizálás, ha semmit nem alakíthat át? Tehát úgy optimalizáljon, hogy közben mégsem optimalizál? Ilyen alapon 2 darab XOR utasításnak kellene lennie, mert szted nem "nyúlhatna" hozzá a C-ben írt kódhoz? Ugye ezt nem gondolod komolyan? Sztem meg kötelező hozzányúlnia a sebesség érdekében, ha a sebességre optimalizálást adták meg neki.
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz cattus #15315 üzenetére
Most tényleg azon lovagolsz, hogy a gcc egy speciális esetben éppen nem optimalizál egy specifikus use-case-t?
Hát ha nagyon sarkosan akarunk fogalmazni(és mindent rám akarsz hárítani), akkor igen.
De ez az egész ott kezdődött, hogy Domonkos példát szeretett volna látni.
Én csak erre írtam példát. Aztán jött a többi...
[ Szerkesztve ]
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz dabadab #15317 üzenetére
Ha megnézed, akkor láthatod, hogy a többiek értik a dolgot, csak nem értenek vele egyet.
cattus-tól:
hogy a gcc egy speciális esetben éppen nem optimalizál egy specifikus use-case-t?Livius-tól:
Most nem azért, de olyan optimalizálást vársz el,Mindenki optimalizálási dolognak látja, csak te nem. Illetve Domonkos álláspontját nem tudom, mert nem fejtette ki.
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz dabadab #15321 üzenetére
Nem az volt a kérdés. Domonkos kérdése ez volt:
>Vannak esetek, amit nem vesz észre.
Egy peldat szeretnek kerni!A tőlem való idézet(az én állításom) ez volt teljes egészében :
De azért a fordító sem mindig olyan okos. Vannak esetek, amit nem vesz észre. De mondjuk azt meg a programozónak kellene észrevennie(viszont az biztos, hogy legtöbbször nem sikerül).Tehát már nem az assembler volt a kérdés, hanem a C fordító! Csak te ragadtál le az assembleres témánál. De ha pontosak akarunk lenni, akkor az eredeti kérdés sem az volt, hanem hogy kép manipulálását hogy lehet assemblerben gyorsítani(szóba sem került eredetileg a C/C++.
[ Szerkesztve ]
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz btraven #15358 üzenetére
Az egy kitalált világ. Csak az a baj, hogy a valóságban is vannak hasonlók. Pl. a TC is amikor keres, akkor mutatja, hogy éppen melyik mappában keres. Mintha sokra mennénk vele, hogy egy szemvillanás törtrészére megjelenik valami.
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz axioma #15372 üzenetére
És user-ként mit tudok csinálni, ha tudom, hogy xy mappában tölt sokat? Vagy kivárom, vagy leállítom a keresést. De ugyanezt meg tudom csinálni akkor is, ha nem tudom, hogy hol időzik sokat. Tehát teljesen felesleges ezeknek a kiírása. Csak lassabb lesz a keresés.
Ez épp olyan dolog, mint pl. az ötöslottó ~44 misis kombinációja: ha csak legenerálja a program, akkor <1 sec. alatt végez. Viszont ha ki is iratom, akkor órák alatt fut csak le.
Jó, mondjuk a mappák kiírásával nem órákat veszít a tc-ben a user, de azért érzékelhetően gyorsabb lenne, ha nem írná ki a mappákat.
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz Domonkos #15374 üzenetére
Ez igaz. Lehet, hogy nem minden íródik ki. User-ként nem tudom. Viszont azt tudom, hogy nagy százalékban nem tudom elolvasni, hogy hol tart. Még amikor 1 vagy 2 sec-re "megakad" akkor is éppen hogy. De csinálni akkor sem tudok vele semmit.
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz kovisoft #15376 üzenetére
sokkal gyűlöletesebb user interface a szimpla kerregő homokóra és társai
Az én programom tényleg semmit nem csinál, még csak nem is homokórázik.
Annyi változik, ha elindítod a 3 "Start" gomb egyikét, hogy a felirata "Stop"-ra változik. Ha végzett, akkor pedig megjelenik a középső szövegmezőben az eredménye és a gombon a "Stop" felirat ismét "Start" lesz.De nekem az volt a célom, hogy ha nem is támogatja a programom az egyidejű futtatást, akkor is a user-nek lehetőséget adjak rá. Ezért imádom a programozást, mert(a nagyon alap dolgok kivételével) ugyanazt a dolgot "millióképpen" meg lehet valósítani.
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz pmonitor #15378 üzenetére
Készítettem Made in Hirtelen egy teszt alkalmazást. FindFirstFile-FindeNextFile felhasználásával. Tesztelhetitek ti is. Nálam ez sokkal gyorsabb a TC-nél(pedig ez C#-ban van, a TC meg gondolom C++-ban lehet). Tehát a TC a kiírással nagyon sok időt pazarol el. Az ad-hook programomban még sok puffer van azáltal, hogy nem írja ki, hogy hol keres éppen.
De érdekes módon, ha a 2 program egyszerre fut, akkor majdnem egyszerre végeznek. Ezt nem értem, hogy miért van? Ha valaki tudja erre a választ, ő megírhatná, hogy mi lehet a magyarázat erre. A program letölthető innen. FindFirstFile.rar.
[ Szerkesztve ]
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz kovisoft #15381 üzenetére
A c:\ meghajtóm a TC stabilan 4:10 alatt listázza ki(függetlenül attól, hogy hányszor futtatom le).
Az én programom az első futtatáskor 2:50 alatt, de utána van, hogy 0:33 alatt végez vele.
De ha egyszerre indítom mindkettőt, akkor közel egyszerre végeznek.Ha a programomnál a 2:50-es időt nézzük, akkor is 1:20-al kevesebb idő kell neki, mint a TC-nek. Ez nagyon sok.
Mondjuk a programom most karikázik, mert a UI szálon futtatom, ezt légyszi nézze el, aki kipróbálja.
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
Igen, igazad van. Nem is arra gondoltam, hogy az összes funkcióját megcsinálom(főleg egyedül). Csak ez nagyon feltűnt próba nélkül is, hogy feleslegesen írja ki a mappákat. És pont témába vágott. Ezért hoztam fel. Mondjuk hozzá kell tenni, hogy a teszt programom bár C#-ban készült, de win api függvényeket használ(FindFirstfile-FindNextFile a szíve neki). És ha egy win api függvény működik C#-ban, akkor az sebességben alig marad el pl. a C/C++-tól(legalábbis nagy mértékben biztos, hogy nem).
Szóval csak izgatott a téma. Ezért is készítettem hirtelen felindulásból egy teszt programot.
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz Livius #15458 üzenetére
A kérdésem az hogy portableként bármilyen setup.exe nélküli Java progit hogyan tudsz futtatni?
Azért tegyük hozzá, hogy kell hozzá a nem kis méretű framework. Igaz, hogy most már alapból benne van a win-ben. De nem volt ez mindig így. Az xp-re pl. külön kellett telepíteni.
Ettől függetlenül nekem is tele van a t...m a több megás telepítendő programokkal. Ezek csak azért ilyen méretűek, hogy csili-vili legyen a progi, és hogy (ugyan törhetetlen progi nincs) minél jobban védjék törés ellen. Arról nem is beszélve, hogy teleszemetelik a registryt. Ha csak az én fő programom nézzük(1D vágás ), ez egy 14 kb-os .exe-ből, és egy 22 kb-os .dll-ből áll. Telepíteni nem kell. Nézd meg pl. a hasonló free programot. Biztosra veszem, hogy telepíteni kell(azért, mert évente meg kell újítani a licence-t). És a file sem hiszem, hogy 35 kb. körül van. Bár nem próbáltam ki. Minek? Azért, hogy telepítés után eltávolítsam? Erről beszélek. Mondjuk a mai hardveren igaz, hogy elfér, de szinte minden program telepítéssel működik. Azért a sok "nagy" sokra megy.
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz fatal` #15471 üzenetére
Belegondolsz, akkor a win api-t is elszúrták, nem csak a VS-t. Írok egy példát, amibe nemrég szaladtam bele.
C#-ban elindítok Process.Start-al 1 programot(pl. Calc.exe). Idáig végzi is a dolgát, úgy ahogy kell. Lekérdezem a Process ID-t. Látszólag ez is végzi a dolgát, mert 1 értéket beletesz. Csakhogy ez az érték nem a Process ID-je. Tehát Invalid értékkel tölti fel(a feladatkezelőben teljesen más érték van). Azért a biztonság kedvéért megpróbáltam Kill-el kilőni. Természetesen nem sikerült(mivel egy false ID-t tartalmaz). A Kill egyébként működik, mert ha a feladatkezelőből meg nézem az elindított programot, akkor valóban kilövi.
Na mondom, biztos a VS "szórakozik". Megpróbáltam win api-val, CreateProcess-el(továbbra is C#-ban). Getlasterror nem ad errort. Viszont az ID itt is Invalid.
Na, mondom megyek tovább. Még mindig VS-el, de már C++-ban. Az ID itt is invalid.
Na, mondom megyek még tovább: Code:locks. Az eredmény itt is Invalid ID. Tehát nem VS specifikus probléma. Masm32-vel még nem próbáltam, de sztem ott is ugyanez a jelenség lenne.Az eddigi post-jaimból is kitűnt, hogy nem vagyok kibékülve olyanokkal, akik "programozó szakiknak" állítják be magukat a fórumokon(messziről jött ember azt ír magáról, amit akar). Mondjuk ez a határozott véleményem elsősorban a prog.hu-s tapasztalataimból ragadt rám. De hogy a Microsoft-nál is a vezető szerepben lévő "programozók is ilyen sz"-t adjanak ki a kezükből...
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz Silεncε #15476 üzenetére
Azt nem tudom. Abban igazad van, hogy lehet, hogy nem bug, hanem én szúrok el valamit. A Code:: Blocks-ban lévő próbálkozásomat bemásolom.
#include <windows.h>
#include <stdio.h>
void tesztpprocess()
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));
if (!CreateProcess("C:\\WINDOWS\\SYSTEM32\\Calc.exe", NULL, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
{
printf("CreateProcess failed (%d).\n", GetLastError());
return;
}
WaitForSingleObject(pi.hProcess, INFINITE);
printf("%d", pi.dwProcessId);
getchar();
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
}A GetLastError nem ad errort.
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz pmonitor #15478 üzenetére
A C# kód, ami invalid értéket ad vissza Az itt található példakód alapján csináltam.
using System;
using System.Diagnostics;
using System.Windows.Forms;
namespace TestProcess
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
void OpenWithStartInfo()
{
ProcessStartInfo startInfo = new ProcessStartInfo(textBox1.Text);
startInfo.WindowStyle = ProcessWindowStyle.Minimized;
Process.Start(startInfo);
Process pr = Process.Start(startInfo);
textBox2.Text = pr.Id.ToString();
}
private void button1_Click(object sender, EventArgs e)
{
OpenWithStartInfo();
}
}
}@kavalkád: nem Neked szólt. A post-odat még nem láttam, amikor írtam. De kipróbáltam az első paraméterbe NULL-al, a másodikban a file-névvel. Úgy sem működik rendesen. Viszont ha Delphiben működik, akkor lehet, hogy tényleg én szúrok el valamit. Csak nem tudom, hogy mit.
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
-
pmonitor
aktív tag
válasz kovisoft #15484 üzenetére
Nincs is calculator.exe a gépemen. Ettől függetlenül jó helyen kapizsgálsz.
Mert ha mielőtt a programom elindítanám, az előtt elindítom windowsból a calc.exe-t 2-szer, annak mind egy ID-je van. Ha így módosítom a C# kódom, akkor a tömb hossza csak 1, még akkor is, ha a programom a 3., vagy 4. calc.exe-t indította. Egy "normális" programnál mind külön PID-et kapna. De itt a pr_2 tömb hossza csak 1.
using System;
using System.Diagnostics;
using System.Windows.Forms;
namespace TestProcess
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
void OpenWithStartInfo()
{
ProcessStartInfo startInfo = new ProcessStartInfo(textBox1.Text);
startInfo.UseShellExecute = true;
startInfo.WindowStyle = ProcessWindowStyle.Minimized;
Process pr = Process.Start(startInfo);
//textBox2.Text = pr.Id.ToString();
Process[] pr_2 = Process.GetProcessesByName("calc");
textBox2.Text = pr_2.Length.ToString();
}
private void button1_Click(object sender, EventArgs e)
{
OpenWithStartInfo();
}
}
}Tehát végülis nem bug. Ha csak azt nem nevezzük bug-nak, hogy akármennyi calc elindítása után is csak 1 pid van. Mert végülis ezáltal nem működik.
De megnéztem 1 64 bites win 7-es laptopon, ott jó pid-t ad vissza. Csak a win 10-en nem jó.
Befonom a szemöldököm.
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz Fire/SOUL/CD #15487 üzenetére
Megelőztél! Köszönöm! Működik! Csak az a kérdés, hogy általános esetben(amikor egy textbox-ban lehet megadni az indítandó file-t), akkor honnan tudom, hogy a "Calculator.exe" helyére mit kell írnom? Mert a textboxban pl. itt "calc.exe" van. Tehát hogyan lehetne detektálni, hogy egy elindított program úgy viselkedik-e, mint a "notepad.exe"(azonos névvel), vagy úgy, mint a "calc.exe"(ami más néven szerepel a process lista között)?
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz pmonitor #15488 üzenetére
Egyébként még régebben nekiálltam 1 projektnek a processek terén is(lásd a képet).
De hogy ilyen bonyodalmak is lehetnek, erre nem gondoltam...
Szerk.: meg is van sztem. Az első modul fájlnévnek lesz köze a megoldáshoz.
[ Szerkesztve ]
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz kovisoft #15484 üzenetére
Elnézést kérek. Tényleg igazad volt. Én ütöttem el a file nevét, vagy nem rendszergazdaként indítottam a keresőt.
Azt hiszem, hogy ami itt történik, azt hívják mutex-nek.
@Silεncε: Neked is igazad volt. Nem a Process.Start() vagy a Createprocess() volt bug-os. Mindenesetre pont beletrafáltam abba a programba, ami másképp működik, mint egy általános program.
Mindenesetre tanulságos volt(és remélem, hogy nem csak nekem). Köszönöm mindenkinek a segítséget.
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
Valaki használta már a visual studioban a beépített assemblert? Ő talán tudna segíteni. Az itt található kódot próbáltam, de az include-oknál error-ozik. Pl.: "Error A1000 cannot open file : masm32includewindows.inc"
Az itt található kódot is próbáltam, de itt is az include-al és az includelib-el van problémája. Masm32-ben működik ez a kód.
Próbáltam azt, hogy a masm32-ből bemásoltam a file-okat, de az sem tetszik neki.
Tehát a kérdésem az lenne, hogy hogyan lehet az include-okat működésre bírni VS-ben?http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz pmonitor #15512 üzenetére
"Error A2026 constant expected include\winextra.inc 11052"
Ezt a hibát írta ki a 11052 és a 11053 sorra a winextra.inc file-ban.
STD_ALERT struct
alrt_timestamp dd ?
alrt_eventname WCHAR [EVLEN + 1] dup (?)
alrt_servicename WCHAR [SNLEN + 1] dup (?)
STD_ALERT endsha kommentbe teszem a következő 2 sort:
alrt_eventname WCHAR [EVLEN + 1] dup (?)
alrt_servicename WCHAR [SNLEN + 1] dup (?)
akkor működik. Csak azt nem tudom, hogy ezt miért nem fogadja el. De az a lényeg, hogy működőképes lett a program. Már ez is műxik.; We access the MangaEden API and request a list of the first 25 available manga. I used a buffer size of 5000, but feel free to modify it.
; I basically learned ASM today, just felt like posting this somewhere.
.386
.model flat, stdcall
option casemap:none
; Includes
include include\windows.inc
include include\kernel32.inc
includelib lib\kernel32.lib
include include\user32.inc
includelib lib\user32.lib
include include\wininet.inc
includelib lib\wininet.lib
WinMain proto :DWORD,:DWORD,:DWORD,:DWORD
; Initialized data
.data
AppName db "GUI App with Buttons",0
ClassName db "Class of GUI",0
ButtonClass db "button",0
ButtonText db "Kattints rám!",0
strTitle db "Cím",0
strMessage db "Hello world!",0
fhwnd dd 0
hwndButton dd 0
.data?
hInstance HINSTANCE ?
CommandLine LPSTR ?
.const
ButtonID equ 1
.code
start:
invoke GetModuleHandle,0
mov hInstance, eax
invoke GetCommandLine
mov CommandLine, eax
invoke WinMain, hInstance,0, CommandLine, SW_SHOWDEFAULT
;invoke MessageBox, 0, ADDR strMessage, ADDR strTitle, MB_OK
invoke ExitProcess, 0
;end start
WinMain proc hInst:HINSTANCE, hPrevInst:HINSTANCE, CmdLine:LPWSTR, CmdShow:DWORD
local wc:WNDCLASSEX
;local fhwnd:HWND
local msg:MSG
mov wc.cbSize, SIZEOF WNDCLASSEX
mov wc.style, CS_HREDRAW or CS_VREDRAW
mov wc.lpfnWndProc, offset WndProc
mov wc.hbrBackground, COLOR_BTNFACE+1
push hInst
pop wc.hInstance
mov wc.lpszMenuName,0
mov wc.lpszClassName, offset ClassName
invoke LoadIcon, 0, IDI_APPLICATION
mov wc.hIcon, eax
mov wc.hIconSm, eax
invoke LoadCursor, 0, IDC_ARROW
mov wc.hCursor, eax
invoke RegisterClassEx, addr wc
invoke CreateWindowEx, 0, \
addr ClassName, \
addr AppName, \
WS_OVERLAPPEDWINDOW, \
CW_USEDEFAULT, \
CW_USEDEFAULT, \
500, \
500, \
0, \
0, \
hInst, \
0
mov fhwnd, eax
invoke ShowWindow, fhwnd, CmdShow
invoke UpdateWindow, fhwnd
.While 1
invoke GetMessage, addr msg, 0, 0, 0
.BREAK .IF (!eax)
invoke TranslateMessage, addr msg
invoke DispatchMessage, addr msg
.ENDW
mov eax, msg.wParam
RET
WinMain endp
WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
.if uMsg==WM_DESTROY
invoke PostQuitMessage, 0
.elseif uMsg==WM_CREATE
invoke CreateWindowEx, 0, addr ButtonClass, addr ButtonText, \
WS_CHILD or WS_VISIBLE or BS_DEFPUSHBUTTON, \
170, 100, 140, 25, hWnd, ButtonID, hInstance, 0
mov hwndButton, eax
.elseif uMsg==WM_COMMAND
mov eax, wParam
shr eax, 16
.if eax==BN_CLICKED
mov eax, lParam
.if eax==hwndButton
invoke MessageBox, 0, ADDR strMessage, ADDR strTitle, MB_OK
.endif
.endif
.else
invoke DefWindowProc, hWnd, uMsg, wParam, lParam
ret
.endif
xor eax, eax
RET
WndProc endp
end starthttp://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
Igazából ide írom, mert általános algoritmus(ok)ról van szó. És keveredik az oktatással is. Az ismétléses permutáció algoritmusát ez alapján csináltam meg. A napokban próbáltam optimalizálni. Míg végül a C# topic-ban joysefke ezt a linket adta meg. Ez egyszerűbb is, és kb 4-5-ször gyorsabb.
Az első könyv egy egyetemi jegyzet. Ebben kevéssé érthető és sokkal lassabb algoritmus van. Egy kicsit merész kijelentést teszek ezzel kapcsolatban. Mégpedig azt, hogy lehet csodálkozni, hogy az egyetemeken a nem gyakorlati(hatékony) dolgokat oktatják. Ezért sztem nem lehet csodálkozni, hogy amikor a nebulók kikerülnek az 'oskolából, akkor gyakorlati tudásuk zéró. Nektek mi a véleményetek ezzel kapcsolatban?
Egyébként az ismétléses permutációval kapcsolatos teszteket itt meg lehet nézni.http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz pmonitor #15559 üzenetére
Ezen az oldalon elkészítettem a permutációk, kombinációk és a variációk kódjait/tesztjeit is. Aki tud valamelyiknél hatékonyabb kódot(vagy algoritmusra mutató linket), őt kérem, hogy ossza meg velünk.
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz kovisoft #15584 üzenetére
Átírtam C#-ra a kódod. Ez nagyon hasít! Az én kódom, meg az egyetemi jegyzetben szereplő algoritmus n=12 esetén eljátszik vele 80 sec-ig, a Tied végez vele ~2 sec alatt. A Tiéd n=13-at megcsinálja 23 sec alatt. n=14-et 5.5 perc alatt. Miért van az, hogy egyetemi jegyzetben is az ócska kód szerepel? Ha 1 ilyen hasító kódot valaki meg tudna írni ismétléses permutációra, ő elég nagy számokra meg tudná oldani a hátizsák problémától kezdve az 1D vágás problémáján keresztül sok mindent!
@K1nG HuNp: légyszíves keress nekem egy robosztus, teljesen tesztelt open source libet, ami tobbet is tud jobban kovisoft kódjánál. Egyébként hasonlítsd össze a te postodat és kovisoft-ét. Szted melyik ér többet? És érdekes, kovisoft is i, j-t használ.
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz kovisoft #15584 üzenetére
Megnéztem az eredeti kódod C-ben. Itt n=13 esetén ~14, n=14 esetén ~200 sec. alatt fut le. Mint az oldalamra is írtam, azért a C# játékszer a C-hez képest.
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz Livius #15593 üzenetére
Nem megyek el dolgozni 1 multihoz sem, mert én nem vagyok programozó, csak programoz(gat)ok. Ezen kívül teljesen igaz, amit írsz, szóról-szóra. Viszont attól a C# nem fog begyorsulni(főleg, ha ragaszkodik valaki az OOP-hoz). Egyébként én azt az utat szoktam választani, hogy ha valamit nem tudok megoldani(vagy kritikus helyen lassú) C#-ban, akkor C/C++-ban készítek 1 natív .dll-t, és azt használom a C# programommal. Ilyen pl. ez a programom is. Ugyanis egy másik alkalmazásnak nem minden adatához enged hozzáférni .Net-ben. De a fő programom C#-ban készült. A C# nagy előnye, hogy nagyon sok mindent meg lehet csinálni 1-2 kattintással, meg hogy áttekinthetőbb kódot lehet benne írni. De ez a sebesség rovására megy. Assembly és C esetén meg pont fordítva van.
@Ispy: Fordítsuk meg a dolgot: szerinted az igazi programozók csak C#-ban programoznak? De a tény az tény.
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz kovisoft #15598 üzenetére
Először is szeretnék elnézést kérni Tőled a múltkori miatt. Tudod miről van szó, de itt nem írhatom le, mert megint 1 7 pihenőre küldenének. Mindenesetre az látszik, hogy aki kódot ad, ő nem összehasonlítható a többiekkel. És még most is agyaltál rajt. Köszönöm.
Nagyon jelentősen gyorsítottál a kódon. Az eddigi leggyorsabb ~34 sec. után a Te kódod ~13 sec alatt végzett a megszokott karakterlánccal(mert átalakítottam a kódod. int helyett karaktertömböt permutál). Ezek után a megszokott karakterlánchoz hozzátettem egy darab 'a' karaktert. Az így módosított kód C#-ban 30.6 sec. alatt futott le. A C-ben pedig 26.6 sec alatt. Itt "csak" 4 sec. a különbség a C és a C# között a C javára. Érdekes, hogy láthatod mennyivel gyorsabb a kódod, mégis "csak" 1 karaktert tudtam a végére tenni a karaktertömbnek, hogy emberi idő alatt lefusson. Ez is mutatja a feladat nehézségét.
Az egészet Itt meg tudod nézni.Nagyon szépen köszönöm a segítséged.
Szerk.: megnéztem még 1 karakterrel 3 perc alatt fut le C-ben.
[ Szerkesztve ]
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz pmonitor #15600 üzenetére
Elkészítettem az ismétléses permutációval megvalósított Cutter kódját C-ben. Ez 3 sec-en belül végez a kódba égetett feladattal. Akit érdekel, itt megtalálja.
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz sztanozs #15602 üzenetére
Az a baj, hogy ilyen dologról való post igazából itt off topic sajnos, úgyhogy sokáig nem lehet róla nézőpontot egyeztetni. Tényleg, nem lehetne olyan topic-ot nyitni, ahol az ilyen dolgok nem off topic-nak számítanának?
Egy dolog azért fúrja az oldalam, így mégiscsak meg kell kérdeznem.
Azt mondjátok, hogy mind1, hogy 2 vagy 7 sec. alatt fut le. Az is mind1, hogy <1 perc, vagy 15 perc alatt végez valami?http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz kovisoft #15604 üzenetére
Nézzük az én esetemet. Nekem a kód megírása után eszembe sem jutott, hogy ennél gyorsabban is meg lehetne csinálni. Egyetemi jegyzetben szereplő algoritmus alapján készítettem el. Mert az ember mit gondol, ha egy egyetemi jegyzetben szereplő kód alapján készít el valamit? Nyilván azt, hogy legalább a "középmezőnybe" tartozó (pszeudo)kódról van szó, ha nem is sebességre optimalizált. Az igazság az, hogy a saját korlátaimba estem bele. Aztán jött "joysefke", és belinkelt 1 olyan algoritmust, amiről ránézésre látszott, hogy jóval gyorsabb. Mikor kipróbáltam, akkor ez realizálódott is. Ezért is csináltam meg az oldalamon a kódokat/teszteket a legalapvetőbb kombinatorikai feladatokra. Aztán jöttél Te, és 1 még sokkal hatékonyabb kódot adtál(amit azt hiszem magadtól írtál régebben). Egyébként én nem tudok olyan oldalról, ami különféle témájú alapvető feladatokat megoldó algoritmusokat tesztel/hasonlít össze/érdekességként említ meg. Olyan oldallal találkoztam, ami pl. rendezéseket ír meg/hasonlít össze. De az ilyen oldalon meg pl. a kombinatorikai alapvető dolgokat nem hasonlítják össze. A gúúgli igaz, hogy sok ember barátja, de sok a "salak" is benne. Ráadásul ezek több helyen is felbukkannak. És talán kijenthetjük, hogy nagyon sokat kellene google-zni, hogy megtaláljuk pl. a Te kódodat. De lehet, hogy meg sem találnánk, nem tudom. Ráadásul a 6 téma közül kettőt is megoldottál(az ismétléses és az ismétlés nélküli permutációt). Itt jut eszembe: Remélem nem gond, ha felhasználtam a kódod az oldalamon. Gondolom, ha gond lenne, akkor nem írtad volna ide. Meg ha jól tévedek, talán azért is írtál kódot, mert láthattad, hogy én is azt írtam. De sztem 1 ilyen oldalt nem nekem illett volna elindítani, hanem tényleg egy szakinak.
Egyébként nem tudom, hogy miért olyan nagy gond egyeseknek(vagy többeknek), hogy a tényt leírom: hogy a C gyorsabb, mint a C#? Más is kiállt a C mellett, de ővele még sincs bajuk. Egyébként a standard C++ is lassabb a C-nél. Legalábbis, ha C++ protokolljait/konvencióit betartjuk. Mondjuk az biztos, hogy a C/C++ tanulási görbéje jóval laposabb, mint a C#-é. Mondjuk nekem a "szokásos" nyelvek közül igazán mind1, hogy miben van az algoritmus. A quicksort kódját pl. VB6-ból vettem át. Ha jól tudom innen. De ettől függetlenül azért a jó algoritmust írók többsége C/C++ programozó. Látod itt is Te írtál jó algoritmust, mint aki C-vel asm-el foglalkozol(szerintem).
Valaki azt hiszem említette, hogy miért a "Dos"-hoz hasonlító console alkalmazásokat írok? Mert szerintem algoritmusok/példakódok/tesztek írásához a legideálisabb. Erről jut eszembe. A C-beli printf() is gyorsabb, mint a C++ cout-ja. Na de mind1. Kicsit most hosszabbra sikerült a dolog. De azért a mondanivalóm talán átment.http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz martonx #15606 üzenetére
Nagyrészt igazakat írsz. De pl. 1 C csapat sem biztos, hogy olyan lassú, mint ahogy azt írod. Ha én csinálnám C-ben, akkor biztos. De azt is figyelembe kell venni, hogy a C-seknek is van egy csomó előre megírt kódjuk. Hogy mást ne mondjak, itt van kovisoft esete. Ő sem most írta meg a kódját, hanem a tarsolyában volt. Tehát a C-sek sem nulláról írnának meg minden kódot. Szóval lehet, hogy mégsem lenne annyival hosszabb idő a fejlesztés. És szerintetek a webalkalmazás miben íródott/íródik? Ha jól tudom C++-ban. De javítsatok ki, ha tévedek. De mindenképp kap legalább egy réteget fölé. Sztem ez lassítja le ezeket.
Azért egy linux/windows váltás, vagy 32/64 bites áttérés bármelyik nyelvet "megvisel"(pl. a C# mehet a levesbe linux esetén) Bár ha jól tudom, arra is van C#, de az aztán korántsem olyan elterjedt.[ Szerkesztve ]
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz martonx #15619 üzenetére
Ismerem a C# működését, hiszen abban kódolok legtöbbet. C-t meg általában akkor, ha valamihez natív dll kell, vagy ha kedvem tartja. Asm-ben meg még ritkábban. Továbbá nem tudnak eladni VB6/VBA/VB.NET-ben, javascriptben php-ben, pascalban sem, bár ezek azért már akadozva mennek.
Hogy sok aspektusa van egy nyelv megítélésének, azt elhiszem. Sajnos a programozók(vagy akik annak állítják be magukat. mert a tény az, hogy 2 nick bizonyitotta be nekem, hogy tud programozni) ezek közül soknak tényleg lényegtelen szempont. Csak a gond ott van, hogy én nem vagyok programozó(és nem is mondom magam annak). Akkor vajon miért is kell a hardvert fejleszteni, ha a sebesség lényegtelen? Valaki írta, hogy a user 2 mp-et vár a gépre vagy 10-et, az nem igazán szempont. Ezzel sem igazán tudok egyetérteni annak ellenére, hogy tudom, hogy nem leszek népszerű. Sztem egy programnak 2 jellemzője van(legalábbis ha pénzt kérnek érte): az egyik, hogy jól működjön. A másik, hogy ezt minél gyorsabban tegye. Amikor a bankban az ügyintéző azt mondja, hogy a gépre várunk, majd kb. fél perc múlva lépünk tovább(addig csak nézzük egymást), annak nem igazán szoktam örülni. De akkor kérdezek egyet. Ha nem igazán szempont a sebesség, akkor miért is az nálatok a mondás, "hogy 5 másodperc alatt kell kiszolgálni egy HTTP requestet" Akkor miért kell egyáltalán bármilyen időkorlátot is felállítani, ha a sebesség nem igazán szempont? Az meg egy másik szempont, hogy aki az 5 sec-t meghatározta, ő sem volt a helyzet magaslatán, ha könnyedén a törtrésze alatt meg lehetett oldani(1 szakinak azért pontosabban be kellene lőnie a teljesíthető időt). Soha nem tudom megérteni a programozókat. Én nem közétek tartozom. Főleg úgy, hogy tudom, hogy nagyon sok mindent gyorsabban meg lehetne oldani. De természetesen itt a fizetős alkalmazásokra gondolok. Bár a free-nek is illene ezeket betartani. Pl. most én tudom, hogy lehet gyorsítani a programom kódján. Ezt meg is teszem majd attól függetlenül, hogy free a programom. Hosszú időn át nem tudom elképzelni, hogy a lassabb változat lenne fent annak tudatában, hogy van gyorsabb kód is. Amikor lesz időm, akkor módosítom.http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
Kivettem a konkrét nick megnevezéseket az oldalamról. Azzal tényleg nem vagyok előrébb, ha konkrét, de mégis "névtelen" nick-eket emlegetek az oldalamon.
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- ZOTAC GeForce GTX 1080 AMP Edition 8GB GDDR5X 256bit
- Filmes gép gyűjtemény
- Nikon D5000 + AF-S DX NIKKOR 18-105 mm
- Bontatlan Seagate & Western Digital HDD-k 3TB - 12TB -ig - Számla + Garancia, Ár alatt! BeszámítOK!
- DJI Mini 4 pro FMC drón - 3 akku, RC2 táv, 2 táska, Filterek, 2025. decemberig garancia, DJI Care