It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 12 years ago.
Our application has to download 800 images within 30 secs, but even if we increase time for 1 min, our application is still not able to download all the images.
How can we increase the download speed? so that we can download 800 images within 30 secs?
Is it possible?
Could someone please suggest.
Are you downloading the images one at a time, waiting for the first to finish before requesting the second? It might complete faster if you start multiple downloads in parallel (but not too many!).
If the speed is not limited by your internet connection physically, try to use multiple threads/processes. This is how mass-downloaders work.
There is no way to do this on your end. You need a faster network connection or the images you are downloading must be smaller. (If it were possible to speed up downloads from the user's side, there would never be lag in online games.)
You can combine the images into a ZIP file.
Downloading multiple resources parallelly could reduce download time significantly. fork can be used for parallel execution.
Have a look at Parallel::ForkManager which will help you accomplish the task at hand easily. The DESCRIPTION section in the POD of the module provides an example of a downloader.
Based on your system configuration, you will have to experiment to determine the maximum number of parallel processes. Too less or too many processes can affect performance.
Factors which will affect performance are:
CPU speed
CPU scheduler
Memory
Network speed
Network congestion
Related
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 9 years ago.
I have been investigating the use of the PJSIP SIP stack on a small micro-controller such as the PIC32 MCU and I've come to realise that it may just be possible. I want only the absolute minimal SIP functionality so I just might be able to fit PJSIP on a small MCU. Of course, it's a VERY ambitious project but I'm gonna give it a try anyway. I just can't seem to wrap my mind around the right operating system for use so I'm gonna spend a good couple weeks on this subject. I'm gonna take a look at FreeRTOS. Any thoughts on the compatibility of FreeRTOS with something like PJSIP?
I think the project site itself answers your question:
On portability
On Size
The memory resources suggested would be at the upper end for most on-chip memory. The RTOS's listed are all significantly more fully featured than FreeRTOS which provides little more than thread scheduling, timer services, synchronisation and IPC. You'd need to understand what OS services it assumes. Presumably it uses the platform's network stack? FreeRTOS has no network stack - you'd have to provide that too - more resources again.
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 10 years ago.
This is a bit of a generic question.
I am working on an iOS cocoa-2d game which involves complex path finding algorithms. The game is turn based. So before each user's turn I would like to calculate all possible paths. This involves running a lot of data manipulation commands and allocate and releasing simple data objects (no I/O) I am guessing about a million instructions are required to calculate all the paths each turn. Could the iPhone 3GS, 4 and 4G perform this at a fraction of a second, assuming the game is using a single thread.
In general how many instructions per second can be achieved within the game. I am looking for a guesstimate very high level figure.
This greatly depends on the type of "instructions" used in your algorithm or calculation, how they are scheduled by your compiler, and how you count them.
In extremely rough and coarse terms, the ARM CPUs currently used by Apple can issue on the order of 1 integer instruction per clock cycle, and the ARM processor cores used in iOS devices reportedly range in clock speed from 400 MHz to 1 GHz. A high ratio of floating point, multiply or divide instructions or cache misses may significantly change the actual instruction issue and retirement rate.
But the best way to get an accurate estimate would be to compile and benchmark your actual code on your target iOS device.
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 10 years ago.
I'm now investigating a prod issue and would expect my investigating wouldn't cause any side effect to the normal prod environment, so
Would it result in the pause of the running program even for a short period? Thanks
pmap is adding a transient thread to the target process and analyzing it in real time without interrupting it so there should be no risk using it.
pstack, pfiles and pldd are stopping the target process while inspecting them. Usually, this has no consequences as being stopped for a short period of time is something to be expected by any process in a time sharing system like Unix. However, in rare situations, stopping the affected process might be longer than expected and thus have unwanted side effects. This is explained in the p commands manual pages in the WARNING section.
With all the p commands, using the -F flag is not recommended in a production environment as chaos might occur.
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 11 years ago.
I have a location based social networking app.
But it loads a lot slower than other similar apps.
It really slows down when loading photos.
If I send a photo in a chat window on my app and then the same photo in other similar apps My app takes 10 times longer.
But I do not know why
There's no way we can provide a specific answer without knowing specifically what your app does. Fortunately, you don't really need us to tell you why your app is slow; you only need to learn how to figure out for yourself what your app is doing.
Your first step in speeding up your app should be to profile the app using Instruments. Build your app for profiling and run it in Instruments using the Time Profiler tool. Spend some time exercising the part of your app that you want to improve, and then look at the results. You'll be able to see a breakdown of where your app spent time. This should help you understand what your app is doing, and that may help you devise a strategy for speeding up the code. Essentially, you'll want to find ways to do a lot less of whatever the app is spending the most time on. That might mean caching results instead of recomputing or refetching them. It might mean deferring some tasks until the user actually needs them. Or it might mean something else. You won't know until you understand where all that time is going.
Be sure to save the results of that first profiling session. After you make some changes that you think will improve performance, repeat the same test and compare the results to your first results. This should help you confirm that the changes you made really do impact the performance in the way that you thought they would.
Repeat the process for each area that you're concerned about.
A 10x speed differential should be pretty easy to detect. It may be that your competitors spent a lot of time profiling their apps to improve performance, so you may not match them in speed even after you've made all the improvements you can think of, but you should still be able to find some ways to increase performance significantly.
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 11 years ago.
I am working on making a boot loader. I don't know anything till now. I am learning. What is a 16 bit Real mode OS ? What does "Real Mode" means
Read more about X86 and its real mode
In short, it is painful, and exists today for historical reasons.
Why do you work on a boot loader? Did you consider using GNU GRUB to load whatever kernel software you want to load? At least, study the source of some existing boot loader like Grub or LILO
"16 bits" means that that's the size of a "word" as recognized by the CPU (though memory may be organized into bytes, etc). It also implies that the memory address will not be substantially larger than 16 bits, but that gets to be a fuzzy area.
"Real mode" means that the memory is addressed without using any memory-mapping hardware. Ie, the address 1234 in a CPU register will, when used to reference memory, fetch the value at the physical location 1234 in RAM. Usually also implied is that there is little in the way of memory "protection" -- at most just a CPU register than reserves space above or below a certain address as "read-only".
Old original MS DOS would be considered to fall into this category, as would the original Apple II operating system, and many others that are mostly forgotten. Even some fairly large early computers (ie, multiple 6-foot-tall racks of equipment) operated in this mode.
I suggest having a look at James Molloy's Kernel Development Tutorial which introduces you to using GRUB and booting your kernel you can learn to write.