Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
116857ca
Commit
116857ca
authored
Jan 02, 1994
by
Guido van Rossum
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added George Neville-Neil's timing module
parent
a1c996c9
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
196 additions
and
0 deletions
+196
-0
Modules/timing.h
Modules/timing.h
+87
-0
Modules/timingmodule.c
Modules/timingmodule.c
+109
-0
No files found.
Modules/timing.h
0 → 100644
View file @
116857ca
/*
* Copyright (c) 1993 George V. Neville-Neil
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by George V. Neville-Neil
* 4. The name, George Neville-Neil may not be used to endorse or promote
* products derived from this software without specific prior
* written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/*
*
* File: $Id$
*
* Author: George V. Neville-Neil
*
* Update History: $Log$
* Update History: Revision 2.1 1994/01/02 23:22:19 guido
* Update History: Added George Neville-Neil's timing module
* Update History:
* Revision 1.1 93/12/28 13:14:19 gnn
* Initial revision
*
* Revision 1.1 93/12/23 18:59:10 gnn
* Initial revision
*
* Revision 1.3 93/07/22 15:57:39 15:57:39 gnn (George Neville-Neil)
* Added copyright message.
*
* Revision 1.2 1993/07/22 12:12:34 gnn
* Latest macros. They now evaluate to rvalues.
*
* Revision 1.1 93/07/19 16:56:18 16:56:18 gnn (George Neville-Neil)
* Initial revision
*
*
*
*/
#ifndef _TIMING_H_
#define _TIMING_H_
#include <sys/time.h>
static
struct
timeval
aftertp
,
beforetp
;
#define BEGINTIMING gettimeofday(&beforetp, NULL)
#define ENDTIMING gettimeofday(&aftertp, NULL); \
if(beforetp.tv_usec > aftertp.tv_usec) \
{ \
aftertp.tv_usec += 1000000; \
aftertp.tv_sec--; \
}
#define TIMINGUS (((aftertp.tv_sec - beforetp.tv_sec) * 1000000) + \
(aftertp.tv_usec - beforetp.tv_usec))
#define TIMINGMS (((aftertp.tv_sec - beforetp.tv_sec) * 1000) + \
((aftertp.tv_usec - beforetp.tv_usec) / 1000))
#define TIMINGS ((aftertp.tv_sec - beforetp.tv_sec) + \
(aftertp.tv_usec - beforetp.tv_usec) / 1000000)
#endif
/* _TIMING_H_ */
Modules/timingmodule.c
0 → 100644
View file @
116857ca
/*
*
* File: $Id$
*
* Author: George V. Neville-Neil
*
* Update History: $Log$
* Update History: Revision 2.1 1994/01/02 23:22:21 guido
* Update History: Added George Neville-Neil's timing module
* Update History:
* Revision 1.1 93/12/28 13:14:39 gnn
* Initial revision
*
*
*
*
*/
#ifndef lint
static
char
rcsid
[]
=
"$Header$"
;
#endif
#include "allobjects.h"
#include "import.h"
#include "modsupport.h"
#include "ceval.h"
/* Our stuff... */
#include "timing.h"
static
object
*
start_timing
(
self
,
args
)
object
*
self
;
object
*
args
;
{
if
(
!
getargs
(
args
,
""
))
return
NULL
;
INCREF
(
None
);
BEGINTIMING
;
return
None
;
}
static
object
*
finish_timing
(
self
,
args
)
object
*
self
;
object
*
args
;
{
if
(
!
getargs
(
args
,
""
))
return
NULL
;
ENDTIMING
INCREF
(
None
);
return
None
;
}
static
object
*
seconds
(
self
,
args
)
object
*
self
;
object
*
args
;
{
if
(
!
getargs
(
args
,
""
))
return
NULL
;
return
newintobject
(
TIMINGS
);
}
static
object
*
milli
(
self
,
args
)
object
*
self
;
object
*
args
;
{
if
(
!
getargs
(
args
,
""
))
return
NULL
;
return
newintobject
(
TIMINGMS
);
}
static
object
*
micro
(
self
,
args
)
object
*
self
;
object
*
args
;
{
if
(
!
getargs
(
args
,
""
))
return
NULL
;
return
newintobject
(
TIMINGUS
);
}
static
struct
methodlist
timing_methods
[]
=
{
{
"start"
,
start_timing
},
{
"finish"
,
finish_timing
},
{
"seconds"
,
seconds
},
{
"milli"
,
milli
},
{
"micro"
,
micro
},
{
NULL
,
NULL
}
};
void
inittiming
()
{
object
*
m
;
m
=
initmodule
(
"timing"
,
timing_methods
);
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment