Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 85979
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 10, 20262026-05-10T22:10:27+00:00 2026-05-10T22:10:27+00:00

public Int64 ReturnDifferenceA() { User[] arrayList; Int64 firstTicks; IList<User> userList; Int64 secondTicks; System.Diagnostics.Stopwatch watch;

  • 0
public Int64 ReturnDifferenceA() {   User[] arrayList;   Int64 firstTicks;   IList<User> userList;   Int64 secondTicks;   System.Diagnostics.Stopwatch watch;    userList = Enumerable               .Range(0, 1000)               .Select(currentItem => new User()).ToList();    arrayList = userList.ToArray();    watch = new Stopwatch();   watch.Start();    for (Int32 loopCounter = 0; loopCounter < arrayList.Count(); loopCounter++)   {      DoThings(arrayList[loopCounter]);   }    watch.Stop();   firstTicks = watch.ElapsedTicks;    watch.Reset();   watch.Start();   for (Int32 loopCounter = 0; loopCounter < arrayList.Count(); loopCounter++)   {      DoThings(arrayList[loopCounter]);   }   watch.Stop();   secondTicks = watch.ElapsedTicks;    return firstTicks - secondTicks; } 

As you can see, this is really simple. Create a list of users, force to an array, start a watch, loop the list through and call a method, stop watch. Repeat. Finish up by returning the difference from the first run and the second.

Now I’m calling with these:

differenceList = Enumerable                  .Range(0, 50)                  .Select(currentItem => ReturnDifferenceA()).ToList(); average = differenceList.Average();  differenceListA = Enumerable                   .Range(0, 50)                   .Select(currentItem => ReturnDifferenceA()).ToList(); averageA = differenceListA.Average();  differenceListB = Enumerable                   .Range(0, 50)                   .Select(currentItem => ReturnDifferenceA()).ToList(); averageB = differenceListB.Average(); 

Now the fun part is that all averages are positive by a relatively large amount, ranging from 150k to 300k ticks.

What I don’t get is that I am going through the same list, the same way, with the same method and yet there is such a difference. Is there some kind of caching going on?

Another interesting thing is that if I iterate through the list BEFORE the first stop watch section, the averages are around 5k or so.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. 2026-05-10T22:10:28+00:00Added an answer on May 10, 2026 at 10:10 pm

    by the way, using IEnumerable.Count() on an Array is hundreds of times slower than Array.Length… Although this doesn’t answer the question at all.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

public static void main(String[] args) { List<? extends Object> mylist = new ArrayList<Object>(); mylist.add(Java);
public static IList<T> LoadObjectListAll<T>() { ISession session = CheckForExistingSession(); var cfg = new NHibernate.Cfg.Configuration().Configure();
public class PurchaseOrderItem { public Int64 PONumber { get; set; } public string Description
I have a class called PurchaseOrderItem public class PurchaseOrderItem { public Int64 PONumber {
I have two methods: Public Function GetTotalLimit(ByVal entity As Entity) As Int64 Return (From
I am trying to save cascading in EF 4.1 code first. [Table(User)] public class
I have a class: public class Tool { [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)] [DataMemberAttribute()] public Int64 ID
[Serializable] public class ModelResource:ISerializable { public Int64 Ore { get; private set; } public
public static Int64 Decode(string input) { var reversed = input.ToLower().Reverse(); long result = 0;
Assuming a base type of Message... Public Class Message Public ID As Int64 Public

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.