GeeCON Prague 2014*
The moose likes Performance and the fly likes How to assess the execution time Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


JavaRanch » Java Forums » Java » Performance
Bookmark "How to assess the execution time" Watch "How to assess the execution time" New topic
Author

How to assess the execution time

shukla raghav
Ranch Hand

Joined: Aug 03, 2008
Posts: 200
i have a stand alone application with one major method that takes 0.114 seconds to execute. Now i wish to convert this stand alone application in a multiuser - web based application. i expect the system to take same time to execute this method provided a single user has to be responded. By any means can i assess how much time it will take if 1000 users are accessing the application at the same time. how will the execution time be affected, how do i know this so that i can make changes if the performance turns out to be not upto the mark
steve souza
Ranch Hand

Joined: Jun 26, 2002
Posts: 861
Your question is not answerable as it depends on how scalable your code is. Tools that mimic a system under load would be needed to get an idea, and real load may even turn up other issues. JMeter is one tool that should help.


http://www.jamonapi.com/ - a fast, free open source performance tuning api.
JavaRanch Performance FAQ
shukla raghav
Ranch Hand

Joined: Aug 03, 2008
Posts: 200
so should i create a small web-app using the same method. and then use the Jmeter to perform load test. Can Jmeter virtually create simulate a similar environment as if 1000 users are accessing the app. I need to do this to have a rough idea about how the application will performing under such a stress.
steve souza
Ranch Hand

Joined: Jun 26, 2002
Posts: 861
I am not sure how you should proceed as I have never had to do that. Saying you have a 1000 users doesn't say anything about concurrency. What you probably care about is concurrent access. You may have 1000 users, but in such a case it would be unlikely that you would have 1000 simultaneous calls to your method. I would first estimate what the number of concurrent accesses would be. If it is an existing application a log, or database stats may help.

I am not sure how jmeter works you may be able to have it simultaneously call your method without creating a web app first.
Shariquddin Mohammed
Greenhorn

Joined: Oct 10, 2009
Posts: 9
I am not sure JMeter can scale up to a 1000 users, with out adding quite a few load generators. And if you add multiple load generating machines you will have some issues after you collect the metrics, if you have to make any sense out of them. You will have to time sync, etc.. It is do-able though.

You will have to slowly and constantly ramp up your load to 1000 concurrent users, observe the metics as the load is being ramped up and after you reach the peak load of 1000 users; You might also want to put a few steady state periods in between to make sure there is nothing bad happening at a lower user load.
Anirvan Majumdar
Ranch Hand

Joined: Feb 22, 2005
Posts: 261
Grinder is another option you can take a look at. I've used it for quite some time now, and particularly in case of huge concurrent user loads it's quite effective.
shukla raghav
Ranch Hand

Joined: Aug 03, 2008
Posts: 200
Do we need to know some language for writing Test cases. I have no experience for testing except i theoretically know bout different types of testing what i read in my grads days. Well GRINDER seems to be something interesting. But it says it requires Jython. What do i have to do with Jython. How is it used ?
Anirvan Majumdar
Ranch Hand

Joined: Feb 22, 2005
Posts: 261
Weell, for starters you will need to understand a bit of programming. Jython is a sort of alternative based on the Python language implemented for the Java VM. You can read more about it here.
However, if you want to stay completely away from programming, Grinder does offer the option of recording test scripts using a TCPProxy. But that works only in case you want to load test a web based application. Otherwise, you'll have to get your hands dirty if you wish to test a desktop based, standalone Java application.
 
GeeCON Prague 2014
 
subject: How to assess the execution time