mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			66 lines
		
	
	
		
			943 B
		
	
	
	
		
			BlitzBasic
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			943 B
		
	
	
	
		
			BlitzBasic
		
	
	
	
	
	
 | 
						|
Local i, start, result
 | 
						|
 | 
						|
Local s.Sum3Obj = New Sum3Obj
 | 
						|
 | 
						|
For i = 1 To 100000
 | 
						|
	s = New Sum3Obj
 | 
						|
	result = Handle Before s
 | 
						|
	Delete s
 | 
						|
Next
 | 
						|
 | 
						|
start = MilliSecs()
 | 
						|
For i = 1 To 1000000
 | 
						|
	result = Sum3_(MakeSum3Obj(i, i, i))
 | 
						|
Next
 | 
						|
start = MilliSecs() - start
 | 
						|
Print start
 | 
						|
 | 
						|
start = MilliSecs()
 | 
						|
For i = 1 To 1000000
 | 
						|
	result = Sum3(i, i, i)
 | 
						|
Next
 | 
						|
start = MilliSecs() - start
 | 
						|
Print start
 | 
						|
 | 
						|
WaitKey
 | 
						|
End
 | 
						|
 | 
						|
 | 
						|
Function Sum3(a, b, c)
 | 
						|
	Return a + b + c
 | 
						|
End Function
 | 
						|
 | 
						|
 | 
						|
Type Sum3Obj
 | 
						|
	Field isActive
 | 
						|
	Field a, b, c
 | 
						|
End Type
 | 
						|
 | 
						|
Function MakeSum3Obj(a, b, c)
 | 
						|
	Local s.Sum3Obj = Last Sum3Obj
 | 
						|
	If s\isActive Then s = New Sum3Obj
 | 
						|
	s\isActive = True
 | 
						|
	s\a = a
 | 
						|
	s\b = b
 | 
						|
	s\c = c
 | 
						|
	
 | 
						|
	Restore label
 | 
						|
	Read foo
 | 
						|
	
 | 
						|
	Return Handle(s)
 | 
						|
End Function
 | 
						|
 | 
						|
.label
 | 
						|
Data (10 + 2), 12, 14
 | 
						|
:
 | 
						|
Function Sum3_(a_)
 | 
						|
	Local a.Sum3Obj = Object.Sum3Obj a_
 | 
						|
	Local return_ =  a\a + a\b + a\c
 | 
						|
	Insert a Before First Sum3Obj :: a\isActive = False
 | 
						|
	Return return_
 | 
						|
End Function
 | 
						|
 | 
						|
 | 
						|
;~IDEal Editor Parameters:
 | 
						|
;~C#Blitz3D |