Avatar billede kristianp Nybegynder
08. maj 2002 - 10:11 Der er 12 kommentarer og
1 løsning

Import af pakker/klasser

Er der nogen forskel performance mæssigt på hvordan man importer klasser

import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.TimeStamp;

eller

import java.sql.*;
Avatar billede hotcut Nybegynder
08. maj 2002 - 10:14 #1
det er bedst at bruge det første eksempel, da SQL-databasen derved ikke selv skal finde navnene.
Brug den så tit du kan.
Avatar billede jakoba Nybegynder
08. maj 2002 - 10:14 #2
Næe.
Avatar billede komp Nybegynder
08. maj 2002 - 10:15 #3
Nej det er der ikke, da JVM' bootstrap classloader henter class-filerne dynamisk, dvs. når du bruger de forskellige metoder i din kode.
Avatar billede quaid Nybegynder
08. maj 2002 - 10:15 #4
Nej det er der ikke. * angiver bare at den tager alle filnavne.
QD:;:
Avatar billede hotcut Nybegynder
08. maj 2002 - 10:16 #5
forskellen er, når du bruge * skal computeren til at lede listen igennem, og finde ud af hvd det hele heder, før det kan give dig resultaterne.
Hvis du skriver det for den, sparer den det besvær, og du får det hele lidt hurtigere :)
Avatar billede quaid Nybegynder
08. maj 2002 - 10:19 #6
Ja hvis du tæller millisekunder :) Jeg har ikke kunnet mærke forskel.
QD::
Avatar billede hotcut Nybegynder
08. maj 2002 - 10:21 #7
lol, selvfølgelig er det milisekunder - men hvis du har mange brugere, kan jeg love dig for at du ser en forskel!

Jeg lavede det om på min hjemmeside for nogle måneder siden - det blev så meget hurtigere at jeg steg med 25% flere sidevisninger (50,000) om dagen!
Jeg kører altid min server fuldt ud, da jeg ikke har råd til en større... så hvis du belaster databasen meget, vil du kunne mærke en stor forskel.
Avatar billede jakoba Nybegynder
08. maj 2002 - 10:24 #8
Den eneste forskel er under kompileringen. Hvor compileren får en lidt større navnetabel at lede i hvis du bruger *.

den kompilerede .class fil skulle gerne være præcis den samme i begge situationer (test evt på fillængde og checksum). Så køretiden er præcis den samme.

mvh JakobA
Avatar billede kristianp Nybegynder
08. maj 2002 - 10:25 #9
Ok, dvs at der er en lille forskel på hvordan man loader siner klasser, selvom det kun er meget lidt.
Avatar billede komp Nybegynder
08. maj 2002 - 10:32 #10
nej, der er IKKE forskel i loadningen af klasserne, men kun i compileringen. Der vil i class-filerne stå direkte henvisninger til de metoder fra JavaAPI,der skal bruges også loader bootstrap classloaderen metoderne dynamisk. Den eneste forskel er i kompileringen.
Avatar billede komp Nybegynder
08. maj 2002 - 10:37 #11
Hvis du f. eks. skal have skrevet noget ud på skærmen bliver denne instruktion streamet til JVM'ens Methodarea:

invokevirtual #15 <Method void println(java.lang.String)>.

Compileren finder de rigtige adresser og lægger dem ind i bytekoden, så den eneste forskel der er i kompileringen.
Avatar billede disky Nybegynder
08. maj 2002 - 10:42 #12
hotcut:
Det er skrup forkert det du siger.

om man bruger eksempel 1 eller 2 betyder absolut INTET under runtime.

Forresten blander sql databasen sig overhovedet ikke i hvordan dit java program kører.

Som de andre siger sker forskellen KUN under compiling, og ALDRIG på runtime.

Faktisk foretrækker jeg altid metode 2 da man så slipper for at skulle importe de forskellige ting.

At din database performer bedre skylles med sikkerhed IKKE den ændring.
Avatar billede jakoba Nybegynder
08. maj 2002 - 10:55 #13
disky >> dovenlars. metode 1 er fedre da den har kommenterende effekt og mere præcist fortæller hvilke dele af sql der bruges :-))
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester