Click here to Skip to main content
12,505,335 members (64,991 online)
Click here to Skip to main content
Add your own
alternative version

Stats

9.1K views
154 downloads
7 bookmarked
Posted

Using PostSharp to cache methods

, 9 May 2014 CPOL
Rate this:
Please Sign up or sign in to vote.

Introduction

Using PostSharp's assembly modifications you can quite easily cut method consumption time down by caching methods. The library will find a marked cached method, and every call will be checked for with similar arguments, if the same arguments were found, it will immediately return the cached return value of the function call earlier.

Background

This trick uses a library called PostSharp, which has modifies your assembly. This allows you to track method calls and much more. Caching is not an old trick and has been around for a long time. Most web browsers use web page caching, and in this article I will show you how to cache methods within your assembly. Caching methods is a very interesting concept. To use this trick you must know what "caching your method" really means. Caching your method stores your method's return value after a call. Once the cached method is called once the arguments, return value, and method go into a dictionary.

Setting up your project

Before you start modifying your project you need to have included the article's source package. Make sure that you have also installed PostSharp via NuGet or by download. After installation, you also need to add PostSharp as a reference to your project.

After clicking "Add Reference...", A dialog should then appear. Make sure you click Browse -> Browse...

Then find PostSharp and click "OK", If you have done everything successfully, PostSharp should now be listed in your references.

Repeat this process instead by adding the CacheLibrary to your project's references.

Using the code

This library will work the best for methods that produce constant results, given the same arguments. This means that your method(s) should not use variables that involve time or randomness. To mark a method simply add the attribute StoreInCache to your method.

[StoreInCache]
public static int Foo(int bar)
{
    return bar;
}

History

5/8/14 - Updated CacheLibrary with new functionalities.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

austinbox
United States United States
No Biography provided

You may also be interested in...

Pro
Pro

Comments and Discussions

 
QuestionGreat! Pin
Volynsky Alex8-May-14 23:48
professionalVolynsky Alex8-May-14 23:48 
QuestionOne query regarding method caching Pin
Tridip Bhattacharjee7-May-14 20:57
memberTridip Bhattacharjee7-May-14 20:57 
AnswerRe: One query regarding method caching Pin
austinbox8-May-14 11:51
memberaustinbox8-May-14 11:51 
GeneralRe: One query regarding method caching Pin
Tridip Bhattacharjee8-May-14 21:18
memberTridip Bhattacharjee8-May-14 21:18 
GeneralRe: One query regarding method caching Pin
austinbox9-May-14 13:04
memberaustinbox9-May-14 13:04 
QuestionNice! Pin
Volynsky Alex6-May-14 22:33
professionalVolynsky Alex6-May-14 22:33 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web01 | 2.8.160927.1 | Last Updated 9 May 2014
Article Copyright 2014 by austinbox
Everything else Copyright © CodeProject, 1999-2016
Layout: fixed | fluid