Jak wszyscy wiemy, w oprogramowaniu można zadawać bardzo ambitne rzeczy związane z technologią.Uruchamianie zadania obciążającego procesor/pamięć - jakie podejście do kodowania jest najbardziej wydajne?
Ostatnio zapytano mnie o najszybszy sposób konwersji 4000 dokumentów z word na pdf. Kod/oprogramowanie do konwersji jest na miejscu i działa na dedykowanym serwerze, więc sprzęt również tam jest (to jest powtarzające się zadanie). Ale z perspektywy wydajności C#, jaki jest najlepszy sposób na zrobienie tego?
Ciągle myślę o tym, aby podzielić je na kawałki (tj. 40 dokumentów) i przekonwertować je (tj. 40 unikatowych dokumentów x 1000 zadań parellelowych), które działają w tym samym czasie. Czy to jest właściwy pomysł, pod względem wydajności? Najprostszy (i najdłuższy) to seryjna pętla, która przechodzi przez każdy dokument.
Co byś polecił? Nie ma ograniczeń językowych, więc C# 4.0, LINQ itd. Są dostępne.
Czy wiesz, jakie byłyby wąskie gardła? IO? PROCESOR? Pamięć? – Oded
Nie ma sensu mówić o optymalizacjach, chyba że masz * zmierzone * i dokładnie wiesz, gdzie jest wąskie gardło. – Jon
To byłaby pamięć, kiedy widziałem uruchamiane zadanie (I dysk). Proces nie je CPU. – dotnetdev