Izdarīju, ko gribēju.
Vispār ir tāda tiešsaistes daudzvalodu frāžu vārdnīca https://abc.times.lv. Taču bezmaksas versija izsniedz tikai vienu vārdu vienā reizē. Reiz man ienāca prātā doma izveidot viltīgu skriptu. Tas darbojas šādi:
1)Lietotājs manā vietnē pieprasa tulkojamo vārdu, proti, nodod to manam skriptam.
2)Skripts vēršas pie abc.times.lv, iebaro šo vārdu turienes vārdnīcai un noskaidro, cik lapu ar tulkojuma rezultātiem ir iegūts
3)Skripts secīgi lejupielādē visas šīs lapas un parāda tās vienā logā, glīti un bez reklāmām
Tomēr šāds mehānisms, kas realizēts PHP valodā (kuru es, starp citu, vispār nezinu), bezdievīgi bremzēja. Nav jau nekāds brīnums! Lai to paveiktu, skriptam jālejupielādē no 10 līdz 150 lapām 50 KB apjomā, turklāt tas notiek secīgi, nevis paralēli.
Rezultātā lapa ielādējās veselu minūti, un es šai idejai atmetu ar roku. Tomēr latviešu valodai paredzētā jēlā versija joprojām mētājas tepat. Vārds abols (ābols) ar 34 tulkojuma variantiem ielādējas 42–70 sekundēs.
Jau toreiz radās doma ielādēt lapas paralēli, kā to dara mūsdienu lejupielāžu pārvaldnieki, piemēram, FlashGet, vienlaikus lejupielādējot dažādas faila daļas. Taču PHP vidē iespēja to izdarīt atkarībā no hostinga apstākļiem svārstās no "grūti" līdz "neiespējami".
Tāpēc tagad, kad beidzot tiku līdz ASP.NET izstrādes vides novērtēšanai, nolēmu šo idejiņu īstenot.
Rezultātā sanāca ASP.NET programma C# valodā, kas darbojas uz mana mājas datora.
Pagaidām tiek atbalstīta tikai latviešu–krievu vārdnīca.
Jaunais algoritms darbojas šādi:
1)Lejupielādē pirmo lapu un noskaidro, cik lapu būs kopā.
2)Izveido tik daudz pavedienu (threads), cik ir lapu, un liek katram pavedienam lejupielādēt savu lapu. Rezultātā viss tiek lejupielādēts vairāk vai mazāk vienlaikus.
3)Parāda rezultātu.
Patērētais laiks — 25–30 s. Diemžēl ieguvums nez kāpēc nav liels. Tiesa, salīdzinājums nav īsti korekts, jo tas tika darbināts uz pilnīgi atšķirīgiem datoriem dažādās vietās.
Intereses pēc izveidoju arī variantu, kas darbojas pa vecam. Laiks kļuva salīdzināms ar PHP variantu, kas ir loģiski, jo visu ierobežo lejupielādes, nevis programmas izpildes ātrums.
Kopumā pagaidām to lietot nevar. Nākamais loģiskais solis ir izveidot vārdu kešatmiņu. Taču tā jau būs autortiesību pārkāpšanas galējā stadija, un kaut ko tādu publiski izvietot nevarēs.
Labas ziņas visiem! Tālāk sekos liels un garlaicīgs raksts par programmēšanu!
2006-03-16