Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

279 Stron V   1 2 3 > » 

Crozin
Napisane: 21.03.2018, 16:17:24





Grupa: Zarejestrowani
Postów: 6 463
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----

Wepchasz to w JSON-a: będzie wolniejsze pod każdym względem: czasu zapisu, odczytu, modyfikacji, miejsca na dysku, czasu odczytu/zapisu przez PHP-a, wprowadzania zmian (będziesz musiał jak sam zaznaczyłeś pisać jakieś magiczne mappery/mergery) czyli ogólnie rzecz biorąc: dewelopmentu. Po co to wszystko? Jeżeli masz zasób, który składa się z relatywnie dużej liczby właściwości... no OK, z reguły jest to oznaka czegoś złego, ale tutaj nie wydaje się tu być przypadkiem. Tylko zlituj się sam nad sobą i stosuj pełne nazwy dla kolumn - to nie lata 80 by długość tego typu nazw miała dla czegoś znaczenie.
  Forum: Bazy danych · Podgląd postu: #1230949 · Odpowiedzi: 19 · Wyświetleń: 582

Crozin
Napisane: 21.03.2018, 11:30:53





Grupa: Zarejestrowani
Postów: 6 463
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----

Doctrine'owska encja faktycznie będzie miała wtedy 30 właściwości i niech je sobie ma, skoro ona ma na dobrą sprawę odzwierciedlać to co jest w bazie danych. Jeżeli część z tych danych można jakoś sensownie zgrupować też to możesz zrobić przy pomocy @Embeeded. Przecież encję i tak wykorzystuje się tylko na poziomie/w warstwie aplikacji przy bezpośredniej komunikacji ze źródłem danych, także zbyt często z tym potworkiem do czynienia mieć nie będziesz. smile.gif

Innymi słowy - mając 30 różnych danych (a wszystko wskazuje na to, że masz) musisz prędzej czy później się z nimi w kodzie spotkać i zdecydowanie lepiej mieć każdą z nich jawnie i klarownie zdefiniowaną.
  Forum: Bazy danych · Podgląd postu: #1230929 · Odpowiedzi: 19 · Wyświetleń: 582

Crozin
Napisane: 21.03.2018, 08:59:07





Grupa: Zarejestrowani
Postów: 6 463
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----

Cytat
Tak jak pisałęm są to dane numeryczne int, decimal.
Jeżeli każda z tych ~30 wartości reprezentuje coś innego, coś unikalnego, coś co nie jest jakąś grupą/kolekcją/agregatem danych to każda z nich powinna być osobnym bytem - w przypadku bazy danych: kolumną.
Cytat
Nie będzie wyszukiwania po tych danych, filtrowania ani innych operacji.
Nie potrzebujesz wykonywać takich operacji teraz do osiągnięcia wymaganego efektu, ale nie zdziw się jak za 5 miesięcy, ktoś Cię poprosi o wycinek danych z marca, albo o ten raport za jakieś 5000 czy 6000 czegoś tam i najszybszym wykonaniem tego nowego zadania będzie napisanie prostej SQL-ki.
Cytat
Zawsze pobierane są wszystkie te dane bo generowany jest z nich PDF i dodatkowo widok tabelaryczny.
No i od tego mamy SELECT * .... ;-)

Cytat
Dla tego zastanawiałem się nad ew. optymalizacją [...]
Tu tkwi sendo problemu. smile.gif Masz w ogóle jakiś problem wydajnościowy? Co chciałbyś optymalizować? Szybkość dewelopmentu, przyszłe utrzymanie, szybkość pobierania danych, objętość danych na dyskach/w pamięci? Od razu podpowiem, że z sugerowanych "optymalizacji" wszystkie pogarszają wymienione przeze mnie aspekty.
Pamiętaj, że przedwczesna czy mikro optymalizacja to niemal zawsze złe rozwiązanie.
  Forum: Bazy danych · Podgląd postu: #1230913 · Odpowiedzi: 19 · Wyświetleń: 582

Crozin
Napisane: 21.03.2018, 08:02:33





Grupa: Zarejestrowani
Postów: 6 463
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----

> Ja wiem że pakowanie w szerz to nie jest najlepszy pomysł dla tego słcuam głosu ludu
Ale dlaczego? Jeżeli to są sensowne, różnorodne dane, co to jest w tym złego? Co to są dokładnie za dane? Trzymanie tego w formie jakieś zserializowanej tablicy, JSON-a itp. będzie najprawdopodobniej dużo mniej optymalne pod względem szybkości działania, objętości zajmowanego miejsca na dyskach/w pamięci, nie mówiąc już o jakimkolwiek wyszukiwaniu/filtrowaniu danych.
  Forum: Bazy danych · Podgląd postu: #1230906 · Odpowiedzi: 19 · Wyświetleń: 582

Crozin
Napisane: 9.03.2018, 13:14:34





Grupa: Zarejestrowani
Postów: 6 463
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----

1. Nie każda warstwa abstrakcji będzie powodowała spowolnienie, jeżeli np. sama w sobie potrafi coś optymalizować, co normalnie by optymalizowane nie było - np. Second-Level Cache z Doctrine'a.
2. Ilość danych w bazie nie ma dla samego Doctrine'a specjalnego znaczenia.
3. Znaczenie będzie miała natomiast liczba wyciąganych przez dane zapytanie danych. Przetworzenie przykładowo 100 000 rekordów z bazy danych przy pomocy "czystego PHP-a" może być znacząco szybsze niż zrobienie tego z wykorzystaniem Doctrine'a ze względu na powolność PHP-a w tworzeniu obiektów jako takich.
4. Musisz sprawdzać jakie zapytania SQL finalnie generuje Doctrine. A że pracując z ORM-em często łatwo się zapomnieć w tym aspekcie stąd opinia n/t "powolnych ORM-ów".
  Forum: Bazy danych · Podgląd postu: #1230360 · Odpowiedzi: 3 · Wyświetleń: 409

Crozin
Napisane: 30.01.2018, 07:08:52





Grupa: Zarejestrowani
Postów: 6 463
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----

Jedna mała acz bardzo, bardzo istotna uwaga. W MySQL kodowanie UTF8 to utf8mb4, nie utf8 - o tym ostatnim należałoby właściwie zapomnieć. smile.gif
  Forum: MySQL · Podgląd postu: #1228285 · Odpowiedzi: 9 · Wyświetleń: 663

Crozin
Napisane: 4.01.2018, 07:36:08





Grupa: Zarejestrowani
Postów: 6 463
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----

1. Jeżeli nie masz doświadczenia z szerokopojęta kryptografią nie próbuj robić niczego samemu - nie skończysz na tym za dobrze.
2. https://stackoverflow.com/questions/1820311...ers-have-the-sy
3. W praktyce jeżeli chcesz mieć pewność (czy właściwie większe prawdopodobieństwo), że nikt nie uzyska dostępu do Twojego oprgoramowania nie udostępniaj go. Udostępnij je jako całą usługę, tj. samodzielnie zajmuj się jej utrzymaniem dla poszczególnych klientów.
  Forum: PHP · Podgląd postu: #1227041 · Odpowiedzi: 2 · Wyświetleń: 220

Crozin
Napisane: 7.12.2017, 18:34:24





Grupa: Zarejestrowani
Postów: 6 463
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----

A możesz napisać co chciałbyś dzięki temu osiągnąć? Bo odnoszę wrażenie, że to nie jest najlepsze rozwiązanie problemu jaki masz.
  Forum: Frameworki · Podgląd postu: #1225938 · Odpowiedzi: 4 · Wyświetleń: 448

Crozin
Napisane: 13.11.2017, 13:25:22





Grupa: Zarejestrowani
Postów: 6 463
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----

Cytat
Nie da się generalnie odpowiedzieć na pytanie: Jak poprawnie w klasie użyć (np) 5 różnych obiektów?
Na takie pytanie można odpowiedzieć jedynie mając kontekst konkretnego przypadku. smile.gif
Cytat
Bo rozumiem, że poprawnie byłoby wstrzykiwać instancje jako parametry konstruktora (Dependency Injection), ale tu też książka mówi, że nie ładnie mieć wiele argumentów.
I generalnie rzecz biorąc ta książka bardzo dobrze mówi. Co zatem w przypadku, gdy w kontruktorze potrzebowałbym 23 argumentów? Najprawdopodobniej mamy do czynienia ze źle zaprojektowanym obiektem, który próbuje zajmować się zbyt dużą liczbą rzeczy na raz.
Cytat
Jeśli jest to kontroler to tutaj spinasz generalnie wszystko więc ilość zależności może być spora [...]
Kontrolery to dokładnie takie same klasy jak wszystkie inne. Nie powinny spinać wszystkiego, bo co jest do wszystkiego to jest do niczego. ;-) Z jakiegoś powodu da się w sieci znaleźć "odczucia", że kontrolery to jakieś specjalne klasy - nie, nie są w żaden sposób wyjątkowe.
Cytat
W sensie klasa biznesowa raczej powinna po prostu coś zwracać bez większych kombinacji z innymi klasami, a w kontrolerze żongluję tymi klasami biznesowymi. Tak?
Wręcz dokładnie odwrotnie. :-) To własnie klasy/metody z części "logiki biznesowej" potrzebują wykonać całą ciężką pracę w programie, więc to w nich znajdziemy sporo zależności. Inną kwestią jest to, że nadal trzeba trzymać się zasady - im mniej zależności tym lepiej.

W skrócie: musiałbyś podać konkrety przypadek do omówienia (code review) nawet w jakimś pseudokodzie, bo tak to będziemy prowadzić akademicki wywdów. smile.gif
  Forum: Przedszkole · Podgląd postu: #1224515 · Odpowiedzi: 7 · Wyświetleń: 177

Crozin
Napisane: 13.11.2017, 10:06:43





Grupa: Zarejestrowani
Postów: 6 463
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----

Przede wszystkim trzeba pamiętać, że wszystkie hasła jakie podałeś, są dosyć... ogólne. We wszystkim trzeba zachować umiar i zdrowy rozsądek. Pokaż kod, który chciałbyś zweryfikować pod kątem zgodności z dobrymi praktykami, będziemy mogli ocenić czy coś wymaga poprawy czy nie.
  Forum: Przedszkole · Podgląd postu: #1224492 · Odpowiedzi: 7 · Wyświetleń: 177

Crozin
Napisane: 16.10.2017, 09:18:05





Grupa: Zarejestrowani
Postów: 6 463
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----

1. JavaScriptu nie Javy.
2. Od razu polecam zaznajomić się z biblioteką RxJS - jest idealna do tego typu zadań.
3. Powyższy kod jest raczej słabej jakości, nie jest to najlepszy przykład do wzorowania się.
4. Jestem całkiem pewien, że część z tego kodu rozumiesz. Napisz dokładnie co jest niejasne.
  Forum: JavaScript · Podgląd postu: #1223128 · Odpowiedzi: 5 · Wyświetleń: 516

Crozin
Napisane: 26.09.2017, 11:05:47





Grupa: Zarejestrowani
Postów: 6 463
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----

Czyli standardowe pocdejście przy pracy z RDBMS-ami. Po stronie aplikacji będziesz musiał sobie spleść z tego porządaną strukturę.
  Forum: MySQL · Podgląd postu: #1222446 · Odpowiedzi: 6 · Wyświetleń: 406

Crozin
Napisane: 13.09.2017, 07:03:45





Grupa: Zarejestrowani
Postów: 6 463
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----

Tutaj niestety wychodzi porównanie wydajności pomiędzy kodem napisanym w C + PHP (wbudowany moduł od obsługi XML w C wykorzystywany przez API w PHP) konta czyste PHP. Co tu dużo mówić, PHP jest wolny. Co możesz zrobić?
1. Upewnij się, że korzystasz z PHP 7.x nie 5.x - jest zauważalnie szybszy, ale na pewno nie zniweluje Ci to różnicy.
2. Poszukaj jakiegoś prasera, który został napisany jako moduł w C dla PHP. Wtedy powinieneś uzyskać czasy takie jak w przypadku XML-a. Przy czym nie mam pojęcia czy takowy istnieje.
3. To już jest obejście, nie rozwiązanie problemu:
3.a. Przy pomocy zewnętrznego, wydajnego softu konwertuj sobie JSON do XML przed przetworzeniem.
3.b. W ogóle skorzystaj z innej platformy.

  Forum: PHP · Podgląd postu: #1221903 · Odpowiedzi: 5 · Wyświetleń: 281

Crozin
Napisane: 24.08.2017, 11:35:26





Grupa: Zarejestrowani
Postów: 6 463
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----

1. Tabele typu MEMORY są trzymane właśnie w pamięci.
2. Indeksy są trzymane w pamięci.
3. Masz utworzone dwa indeksy na dwie kolumny, a potrzbowałbyś jednego na dwie kolumny by skorzystać z tego mechanizmu.
  Forum: Bazy danych · Podgląd postu: #1221022 · Odpowiedzi: 10 · Wyświetleń: 1 177

Crozin
Napisane: 22.08.2017, 18:11:20





Grupa: Zarejestrowani
Postów: 6 463
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----

Mógłbyś zastanowić się nad utworzeniem indeksu, który będzie zawierać zarówno kolumnę created_at jak i id. Wtedy baza danych w ogóle nie będzie musiała dotykać dysku bo wszystkie dane odczyta bezpośrednio z indeksu: https://dev.mysql.com/doc/refman/5.7/en/glo..._covering_index
  Forum: Bazy danych · Podgląd postu: #1220912 · Odpowiedzi: 10 · Wyświetleń: 1 177

Crozin
Napisane: 10.07.2017, 12:06:31





Grupa: Zarejestrowani
Postów: 6 463
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----

1. Pamiętaj, że w HTML-u białe znaki mogą jak najbardziej mieć znaczenie, więc nie możesz "na pałę" wywalać białych znaków spomiędzy znaczników.
2. Przede wszystkim kompresja GZIP czy DEFLATE.
3. Zweryfikuj czy poprawnie wykorzystujesz cache HTTP.
4. Zastanów się czy potrzebujesz od razu serwować cały kod - być może część rzeczy da się doładować asynchronicznie?
5. Zweryfikuj co jest główną przyczyną wolnego ładowania: kolejkujące się żądania, długi czas generowania odpowiedzi przez serwer, duży rozmiar odpowiedzi, wolny transfer?

Skorzystaj sobie z https://developers.google.com/speed/pagespeed/ by sprawdzić co automaty podpowiadają by poprawić z powyższych.
  Forum: Przedszkole · Podgląd postu: #1218846 · Odpowiedzi: 5 · Wyświetleń: 127

Crozin
Napisane: 10.07.2017, 12:02:40





Grupa: Zarejestrowani
Postów: 6 463
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----

1. Debugger PHP i po kolei przejść kod wykonywany w ramach EntityManager::flush()?
2. Logi zapytań wysyłanych do bazy danych?
  Forum: Przedszkole · Podgląd postu: #1218845 · Odpowiedzi: 2 · Wyświetleń: 105

Crozin
Napisane: 4.07.2017, 09:59:06





Grupa: Zarejestrowani
Postów: 6 463
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----

1. By SomeUnique2 mogło działać dla klasy musi mieć napisaną metodę getTargets(), która powinna zwrócić self::CLASS_CONSTRAINT.
2. Oż Ty leniuszku... http://api.symfony.com/3.1/Symfony/Compone...tInterface.html :-P (np. getRoot()).
  Forum: Frameworki · Podgląd postu: #1218577 · Odpowiedzi: 4 · Wyświetleń: 422

Crozin
Napisane: 4.07.2017, 09:52:16





Grupa: Zarejestrowani
Postów: 6 463
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----

Albo UniqueSome2 ustawiasz jako walidator dla obiektu klasy SomeEntity, a nie pola, albo korzystasz z $context (odziedziczone z ConstraintValidator) by przejść po grafie obiektów w odpowiednie miejsce. Polecałbym razczej pierwszą opcję.
  Forum: Frameworki · Podgląd postu: #1218575 · Odpowiedzi: 4 · Wyświetleń: 422

Crozin
Napisane: 30.06.2017, 07:23:05





Grupa: Zarejestrowani
Postów: 6 463
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----

Miejsce przechowywania tego typu zasobów może być przeróżne (lokalny system plików, FTP, usługa składowania plików w AWS-ie/Google-u/Azure-ze/innych, baza danych, itp. itd.) Osobiście mogę polecić KnpGaufretteBundle (integracja dla Symfony z KnpLabs/Gaufrette), które wprowadza całkiem fajną abstrakcję nad faktycznym miejscem składowania zasobów.
  Forum: Frameworki · Podgląd postu: #1218335 · Odpowiedzi: 4 · Wyświetleń: 529

Crozin
Napisane: 29.06.2017, 18:48:38





Grupa: Zarejestrowani
Postów: 6 463
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----

1. Symfony nie ma absolutnie nic do powiedzenia w kwestii przechowywania plików.
2. Jeżeli jest to pojedyczny plik po prostu wrzuć go sobie do jakiegoś katalogu albo wręcz bezpośrednio w folderze publicznym (web, public, public_html czy jakkolwiek się on nazwa).
  Forum: Frameworki · Podgląd postu: #1218324 · Odpowiedzi: 4 · Wyświetleń: 529

Crozin
Napisane: 26.06.2017, 14:23:23





Grupa: Zarejestrowani
Postów: 6 463
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----

Tak z czystej ciekawości co to za "zbiór klas, które mają być singletonami"? Generalnie kopiuj to do każdej z osobna bądź skorzystaj z traitsów.
  Forum: Object-oriented programming · Podgląd postu: #1218136 · Odpowiedzi: 9 · Wyświetleń: 1 504

Crozin
Napisane: 15.05.2017, 22:22:29





Grupa: Zarejestrowani
Postów: 6 463
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----

Ale przede wszystkim sprawdź czy w ogóle pobieranie konf. z bazy danych jest jakkolwiek obciążające dla Twojego systemu. Bo jeżeli nie, to absolutnie nie ma sensu zawracać sobie głowy cachem.
  Forum: Przedszkole · Podgląd postu: #1215942 · Odpowiedzi: 2 · Wyświetleń: 145

Crozin
Napisane: 27.04.2017, 06:59:12





Grupa: Zarejestrowani
Postów: 6 463
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----

A jako wymaganą lekturę polecam: http://floating-point-gui.de/ czy ogólnie https://www.google.pl/search?q=what+every+p...me&ie=UTF-8
  Forum: PHP · Podgląd postu: #1214823 · Odpowiedzi: 3 · Wyświetleń: 275

Crozin
Napisane: 25.04.2017, 16:18:27





Grupa: Zarejestrowani
Postów: 6 463
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----

1. PHP sam w sobie robi takie "freeMemory()" - poczytaj o GC. Nie zmienia to jednak faktu, że nadal możesz doprowadzać czy to do wycieków pamięci czy poprzez zachowywanie (w jakiś zapewne niebezpośredni sposócool.gif referencji do jakiś obiektów uniemożliwiać GC-owi zwolnienie zasobów zajmowanych przez nie.
2. Już samo wykorzystanie foreach'a może negatywnie wpływać na zużycie pamięci.
3. Domyślam się, że prawdziwy kod jest sporawy, ale bez pokazania go nie ma możliwości zasugerowania jakiegokolwiek sensownego rozwiązania.
  Forum: PHP · Podgląd postu: #1214710 · Odpowiedzi: 7 · Wyświetleń: 358

279 Stron V   1 2 3 > » 

New Posts  Nowe odpowiedzi
No New Posts  Brak nowych odpowiedzi
Hot topic  Popularny temat (Nowe)
No new  Popularny temat (Brak nowych)
Poll  Sonda (Nowe)
No new votes  Sonda (Brak nowych)
Closed  Zamknięty temat
Moved  Przeniesiony temat
 

RSS Wersja Lo-Fi Aktualny czas: 25.05.2018 - 21:47