Sponsored Content
Full Discussion: Weird timing results in C
Top Forums Programming Weird timing results in C Post 302351886 by CRGreathouse on Thursday 10th of September 2009 01:23:11 AM
Old 09-10-2009
Nothing funny, just bit manipulation and accessing a big array. The functions are all similar and all display the same results; here's one example:
Code:
#define GET(b) ((sieve[(b)>>5]>>((b)&31))&1)
static int isprime3(int p) { return (p&1) ? p > 2 && !GET(p >> 1) : p == 2; }

The system is 32-bit Xubuntu 8.10 on a quad-core Phenom II.

As I said before, the results are consistent. When I call
Code:
	printf("New:     %f s\n", median3(&isprime3));
	printf("New:     %f s\n", median3(&isprime3));
	printf("New:     %f s\n", median3(&isprime3));

the time for the first, fourth, and seventh times are fast, the times for the third, sixth, and ninth times are slow, etc.

---------- Post updated at 01:23 AM ---------- Previous update was at 01:18 AM ----------

Quote:
Originally Posted by jim mcnamara
I happen not to like the static declaration of functions for a variety of reasons except in certain instances-- But that is very probably not the cause of this problem.
I don't do it much. If you have advice on better ways to do it, feel free to expound (or give a link!).
 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

scp timing out

having problems using scp in that during peak hours it appears to time out. anyone have similar experiences? any thoughts regarding a solution... (1 Reply)
Discussion started by: jph
1 Replies

2. Shell Programming and Scripting

Timing out a SSH

I need to make it so an autmated process which involves ssh, times out if ssh prompts for a password. Most of the time it shouldnt prompt for a password. But if it does i need it to time it out or get a status and stop the ssh and log that the ssh failed and move onto the next server. Is there any... (9 Replies)
Discussion started by: rcunn87
9 Replies

3. Programming

timing your functions

hi everyone. If you have a function created in your code and you want to find out how long it takes for it to run you can use a struct called gettimeofday(). so lets say we have a function like this int myfunction (int r) { /*some math calculations*/ return answer; } How do i set up... (3 Replies)
Discussion started by: bebop1111116
3 Replies

4. Programming

Help with __builtin_prefetch function and it's timing

Hello there, I just needed to know how to get the timing right when using the gcc __builtin_prefetch() function, that is, how many instructions before the actual utilization of the data should I make the prefetch call. I will be measuring the L1 cache hit rate with valgrind's cachegrind,... (3 Replies)
Discussion started by: Tavo
3 Replies

5. UNIX for Advanced & Expert Users

byte swapping 32-bit float and weird od results

I'm attempting to read a file that is composed of complex 32-bit floating point values on Solaris 10 that came from a 64-bit Red Hat computer. When I first tried reading the file, it looked like there was a byte-swapping problem and after running the od command on the file Solaris and Red Hat... (2 Replies)
Discussion started by: GoDonkeys
2 Replies

6. Shell Programming and Scripting

Can ctag and cscope support recording search results and displaying the history results ?

Hello , When using vim, can ctag and cscope support recording search results and displaying the history results ? Once I jump to one tag, I can use :tnext to jump to next tag, but how can I display the preview search result? (0 Replies)
Discussion started by: 915086731
0 Replies

7. Shell Programming and Scripting

Timing a script

i have a very big script i have that i'd like to add a timeout to. this script runs on a several remote host. i update this script with timeout clause and then copy it over to all the hosts on which it is currently on. basically, i want the timeout to make the script abort/exit if it's... (1 Reply)
Discussion started by: SkySmart
1 Replies

8. Shell Programming and Scripting

Timing the shell script

I have two shell scripts, one written with xargs for parallel processing (p1) and the other written in old school way (p3) . when I execute them, i get the below values. $ time ./p1 real 0m25.36s user 0m0.32s sys 0m0.80s $ time ./p3 real 0m23.25s user 0m6.20s sys ... (4 Replies)
Discussion started by: luhah
4 Replies

9. Red Hat

Hardware and system timing are different

-> We have 2 servers server1 and server2 server. ->server1 is master application and server2 is slave application server. ->output of server1 hardware and slave timing: # hwclock --show Thu 05 Jun 2014 05:34:08 PM SGT -0.465666 seconds # date Thu Jun 5 17:34:16 SGT 2014 # cd... (6 Replies)
Discussion started by: manjusharma128
6 Replies

10. UNIX for Beginners Questions & Answers

Weird 'find' results

Hello and thanks in advance for any help anyone can offer me I'm trying to learn the find command and thought I was understanding it... Apparently I was wrong. I was doing compound searches and I started getting weird results with the -size test. I was trying to do a search on a 1G file owned by... (14 Replies)
Discussion started by: bodisha
14 Replies
SD-ID128(3)							     sd-id128							       SD-ID128(3)

NAME
sd-id128, sd_id128_t, SD_ID128_MAKE, SD_ID128_CONST_STR, SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL, sd_id128_equal - APIs for processing 128-bit IDs SYNOPSIS
#include <systemd/sd-id128.h> pkg-config --cflags --libs libsystemd-id128 DESCRIPTION
sd-id128.h provides APIs to process and generate 128-bit ID values. The 128-bit ID values processed and generated by these APIs are a generalization of OSF UUIDs as defined by RFC 4122[1] but use a simpler string format. These functions impose no structure on the used IDs, much unlike OSF UUIDs or Microsoft GUIDs, but are fully compatible with those types of IDs. See sd_id128_to_string(3), sd_id128_randomize(3) and sd_id128_get_machine(3) for more information about the implemented functions. A 128-bit ID is implemented as the following union type: typedef union sd_id128 { uint8_t bytes[16]; uint64_t qwords[2]; } sd_id128_t; This union type allows accessing the 128-bit ID as 16 separate bytes or two 64-bit words. It is generally safer to access the ID components by their 8-bit array to avoid endianness issues. This union is intended to be passed call-by-value (as opposed to call-by-reference) and may be directly manipulated by clients. A couple of macros are defined to denote and decode 128-bit IDs: SD_ID128_MAKE() may be used to denote a constant 128-bit ID in source code. A commonly used idiom is to assign a name to a 128-bit ID using this macro: #define SD_MESSAGE_COREDUMP SD_ID128_MAKE(fc,2e,22,bc,6e,e6,47,b6,b9,07,29,ab,34,a2,50,b1) SD_ID128_CONST_STR() may be used to convert constant 128-bit IDs into constant strings for output. The following example code will output the string "fc2e22bc6ee647b6b90729ab34a250b1": int main(int argc, char *argv[]) { puts(SD_ID128_CONST_STR(SD_MESSAGE_COREDUMP)); } SD_ID128_FORMAT_STR and SD_ID128_FORMAT_VAL() may be used to format a 128-bit ID in a printf(3) format string, as shown in the following example: int main(int argc, char *argv[]) { sd_id128_t id; id = SD_ID128_MAKE(ee,89,be,71,bd,6e,43,d6,91,e6,c5,5d,eb,03,02,07); printf("The ID encoded in this C file is " SD_ID128_FORMAT_STR ". ", SD_ID128_FORMAT_VAL(id)); return 0; } Use sd_id128_equal() to compare two 128-bit IDs: int main(int argc, char *argv[]) { sd_id128_t a, b, c; a = SD_ID128_MAKE(ee,89,be,71,bd,6e,43,d6,91,e6,c5,5d,eb,03,02,07); b = SD_ID128_MAKE(f2,28,88,9c,5f,09,44,15,9d,d7,04,77,58,cb,e7,3e); c = a; assert(sd_id128_equal(a, c)); assert(!sd_id128_equal(a, b)); return 0; } Note that new, randomized IDs may be generated with journalctl(1)'s --new-id option. NOTES
These APIs are implemented as a shared library, which can be compiled and linked to with the "libsystemd-id128" pkg-config(1) file. SEE ALSO
systemd(1), sd_id128_to_string(3), sd_id128_randomize(3), sd_id128_get_machine(3), printf(3), journalctl(1), sd-journal(7), pkg-config(1), machine-id(5) NOTES
1. RFC 4122 https://tools.ietf.org/html/rfc4122 systemd 208 SD-ID128(3)
All times are GMT -4. The time now is 12:13 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy