caching interview questions
Top caching frequently asked interview questions
Could someone possibly give an example of "cache unfriendly code" and the "cache friendly" version of that code?
How can I make sure I write cache-efficient code?
Source: (StackOverflow)
The header Cache-Control: max-age=0
implies that the content is considered stale (and must be re-fetched) immediately, which is in effect the same thing as Cache-Control: no-cache
.
Google has failed to solve this mystery for me :(
Source: (StackOverflow)
I have read lots of information about page caching and partial page caching in a MVC application. However, I would like to know how you would cache data.
In my scenario I will be using LINQ to Entities (entity framework). On the first call to GetNames (or whatever the method is) I want to grab the data from the database. I want to save the results in cache and on the second call to use the cached version if it exists.
Can anyone show an example of how this would work, where this should be implemented (model?) and if it would work.
I have seen this done in traditional ASP.NET apps , typically for very static data.
Source: (StackOverflow)
I have problem with caching partials in AngularJS.
In my HTML page I have:
<body>
<div ng-view></div>
<body>
where my partials are loaded.
When I change HTML code in my partial, browser still load old data.
Is there any workaround?
Source: (StackOverflow)
We're using a Ruby web-app with Redis server for caching. Is there is a point to test Memcached instead?
What will give me better performance? Any pros or cons between Redis and Memcached?
Points to consider:
- Read/write speed.
- Memory usage.
- Disk I/O dumping.
- Scaling.
Source: (StackOverflow)
I need to clear all APC cache entries when I deploy a new version of the site.
APC.php has a button for clearing all opcode caches, but I don't see buttons for clearing all User Entries, or all System Entries, or all Per-Directory Entries.
Is it possible to clear all cache entries via the command-line, or some other way?
Source: (StackOverflow)
Edit Feb 2014: Note that this question dates from iOS 2.0! Image requirements and handling have moved on a lot since then. Retina makes images bigger and loading them slightly more complex. With the built in support for iPad and retina images, you should certainly use ImageNamed in your code.
I see a lot of people saying imageNamed
is bad but equal numbers of people saying the performance is good - especially when rendering UITableView
s. See this SO question for example or this article on iPhoneDeveloperTips.com
UIImage
's imageNamed
method used to leak so it was best avoided but has been fixed in recent releases. I'd like to understand the caching algorithm better in order to make a reasoned decision about where I can trust the system to cache my images and where I need to go the extra mile and do it myself. My current basic understanding is that it's a simple NSMutableDictionary
of UIImages
referenced by filename. It gets bigger and when memory runs out it gets a lot smaller.
For example, does anyone know for sure that the image cache behind imageNamed
does not respond to didReceiveMemoryWarning
? It seems unlikely that Apple would not do this.
If you have any insight into the caching algorithm, please post it here.
Source: (StackOverflow)
I've discovered this folder in C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files
and have a few questions.
- What does ASP.NET use this folder for, and what sort of files are stored here?
- How does a file get stored here, and when is it updated?
- Does the folder need any sort of maintenance?
Source: (StackOverflow)
Is there a way I can put some code on my page so when someone visits a site, it clears the browser cache, so they can view the changes?
Languages used: ASP.NET, VB.NET, and of course html, css, and jquery.
Source: (StackOverflow)
I have been reading some Redis docs and trying the tutorial at http://try.redis-db.com/. So far, I can't see any difference between Redis and caching technologies like Velocity or the Enterprise Library Caching Framework
You're effectively just adding objects to an in-memory data store using a unique key. There do not seem to be any relational semantics...
What am I missing?
Source: (StackOverflow)
In my model I have :
class Alias(MyBaseModel):
remote_image = models.URLField(max_length=500, null=True, help_text="A URL that is downloaded and cached for the image. Only
used when the alias is made")
image = models.ImageField(upload_to='alias', default='alias-default.png', help_text="An image representing the alias")
def save(self, *args, **kw):
if (not self.image or self.image.name == 'alias-default.png') and self.remote_image :
try :
data = utils.fetch(self.remote_image)
image = StringIO.StringIO(data)
image = Image.open(image)
buf = StringIO.StringIO()
image.save(buf, format='PNG')
self.image.save(hashlib.md5(self.string_id).hexdigest() + ".png", ContentFile(buf.getvalue()))
except IOError :
pass
Which works great for the first time the remote_image
changes.
How can I fetch a new image when someone has modified the remote_image
on the alias? And secondly, is there a better way to cache a remote image?
Source: (StackOverflow)
Please don't say EHCache or OSCache, etc. Assume for purposes of this question that I want to implement my own using just the SDK (learning by doing). Given that the cache will be used in a multithreaded environment, which datastructures would you use? I've already implemented one using LinkedHashMap and Collections#synchronizedMap, but I'm curious if any of the new concurrent collections would be better candidates.
UPDATE: I was just reading through Yegge's latest when I found this nugget:
If you need constant-time access and want to maintain the insertion order, you can't do better than a LinkedHashMap, a truly wonderful data structure. The only way it could possibly be more wonderful is if there were a concurrent version. But alas.
I was thinking almost exactly the same thing before I went with the LinkedHashMap
+ Collections#synchronizedMap
implementation I mentioned above. Nice to know I hadn't just overlooked something.
Based on the answers so far, it sounds like my best bet for a highly concurrent LRU would be to extend ConcurrentHashMap using some of the same logic that LinkedHashMap
uses.
Source: (StackOverflow)
I am looking for a method to disable the browser cache for an entire ASP.NET MVC Website
I found the following method:
Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
Response.Cache.SetNoStore();
And also a meta tag method (it won't work for me, since some MVC actions send partial HTML/JSON through Ajax, without a head, meta tag).
<meta http-equiv="PRAGMA" content="NO-CACHE">
But I am looking for a simple method to disable the browser cache for an entire website.
Source: (StackOverflow)