Home  >  Article  >  Computer Tutorials  >  Yi Language's counting loop causes excessive CPU usage

Yi Language's counting loop causes excessive CPU usage

WBOY
WBOYforward
2024-01-23 09:15:061464browse

Yi Languages counting loop causes excessive CPU usage

Yi Language’s count cycle CPU usage is too high

If you read it like this, you may read hundreds of hard disks in one second, and more than 10,000 hard disks in one minute! ! !

You can try the following array method, it should be better!

.Version 2

.Support library EdirectX

.Assembly Window Assembly 1

.Assembly variables screen, screen

.Assembly variable page, page, , "0"

.Assembly variable abscissa, integer type, , "0"

.Assembly variable ordinate, integer type, , "0"

.Assembly variable background, page

.Assembly variable record number, integer type

.Subroutine __start window_created

.Local variable n, integer type

Screen.Create full-screen mode (get window handle (), 800, 600, 32, false)

Background = screen.Get background page ()

Open (take the running directory () "\data\map1.edb", , , , , , )

Number of records = Get the number of records ()

Redefine array (page, false, number of records)

Redefine array (abscissa, false, number of records)

Redefine array (ordinate, false, number of records)

Go to the first record ()

.Counting cycle head (number of records, n)

Page [n]. Create a bitmap page (screen, get the running directory () read ("name"), )

Abscissa [n] = Read ("abscissa") ' Logically, if the types in the database correspond, there is no need to convert again

ordinate[n] = read("ordinate")

jump over ()

.Counting loop end ()

closure ()

Clock 1. Clock period=100

.Subroutine _Clock 1_Period Event

.Local variable n, integer type

Clock 1. Clock period = 0' These two sentences can be removed

Background.Fill page (#white)

.Counting cycle head (number of records, n)

Page [n]. Block copy (background, abscissa [n], ordinate [n], )

.Counting loop end ()

Screen.SwapPage(false,false,false)

Clock 1. Clock period = 100' These two sentences can be removed

How to reduce CPU usage in Yi language program

Directly upload the Yi language code. The Chinese character programming language code is unusual.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

twenty one

twenty two

.Version 2

.Data type: Get computer cpu information, , system_info

.Member dwoemid, integer type, , , identifier

.Member dwpagesize, integer type, , , paging size

.Member lpminimumapplicationaddress, integer type, , , minimum addressing space

.Member lpmaximumapplicationaddress, integer type, , , maximum addressing space

.Member dwactiveprocessormask, integer type, , , processor mask

.Member dwnumberorfprocessors, integer type, , , number of processors

.Member dwprocessortype, integer type, , , processor type

.Member dwallocationgranularity, integer type, , , the granularity of virtual memory space

.Member dwreserved, integer type, , , reserved

.Data type memorystatusex

.Member dwlength, integer type, , , 64

.Member dwmemoryload, integer type

.Member ulltotalphys, long integer type

.Member ullavailphys, long integer type

.Member ullTotalPagefile, long integer type

.Member ullavailpagefile, long integer type

.Member ulltotalvirtual, long integer type

.Member ullavailvirtual, long integer type

.Member ullavailextendedvirtual, long integer type

.Version 2.Support library spec.Assembly window assembly_start window.Subroutine__start window_created debugging output (get memory information ()). Subroutine gets memory information, text type. local variable pointer, memorystatusex pointer.dwlength = 64globalmemorystatusex (pointer) return ("Total physical memory:" to text (rounded (pointer.ulltotalphys ÷ 1048576, )) "mb" #newline "Available physical memory:" to text (rounded (pointer.ullavailphys ÷ 1048576, )) "mb" #line break "virtual memory:" to text (rounded (pointer.ulltotalvirtual ÷ 1048576, )) "mb" #line break "available virtual memory:" to text (rounded ( pointer.ullavailvirtual ÷ 1048576, )) "mb" #line break "Total Page File:" to text (rounded (pointer. ulltotalpagefile ÷ 1048576, )) "mb" #line break "Available Page File:" to text (rounded ( Pointer.ullavailpagefile ÷ 1048576, )) "mb" #Line break "Computer memory usage:" to text (pointer.dwmemoryload) "%")

The above is the detailed content of Yi Language's counting loop causes excessive CPU usage. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:docexcel.net. If there is any infringement, please contact admin@php.cn delete