Skrip Posted October 6, 2008 Posted October 6, 2008 Hey guys. I am trying to make a script faster. I need to read EVERY line from a 28,168KB (~350,000 lines) text file, and FileReadLine() does not seem to be very fast. It is reading about 4-6 per second. Each line is between 20-150 characters long. Is there a faster alternative to FileReadLine? Or maybe, would an array be faster? What is the limit for how much an array can hold? It might have to hold up 500,000 dimensions.... [left][sub]We're trapped in the belly of this horrible machine.[/sub][sup]And the machine is bleeding to death...[/sup][sup][/sup][/left]
TehWhale Posted October 6, 2008 Posted October 6, 2008 Go for it! I don't think you'll fill up an array anytime soon...15. What are the current technical limits of AutoIt v3?Here are details of the current technical limits of AutoIt. Please note that some of the limits are theoretical and you may run into performance or memory related problems before you reach the actual limit. Maximum length of a single script line: 4,095Maximum string length: 2,147,483,647 charactersNumber range (floating point): 1.7E308 to 1.7E+308 with 15-digit precisionNumber range (integers): 64-bit signed integerHexadecimal numbers: 32-bit signed integer (0x80000000 to 0x7FFFFFFF)Arrays: A maximum of 64 dimensions and/or a total of 16 million elementsMaximum depth of recursive function calls: 5100 levelsMaximum number of variables in use at one time: No limit Maximum number of user defined functions: No limitMaximum number of GUI windows: No limitMaximum number of GUI controls: 65532
Skrip Posted October 6, 2008 Author Posted October 6, 2008 And...I just remembered why I hate arrays. lol [left][sub]We're trapped in the belly of this horrible machine.[/sub][sup]And the machine is bleeding to death...[/sup][sup][/sup][/left]
MrCreatoR Posted October 6, 2008 Posted October 6, 2008 FileReadLine() does not seem to be very fastIf you use it without opening the file first then yes, it can be slow... ;Write to file *Around* 28,168 KB $hFOpen = FileOpen("File.txt", 2) For $i = 1 To 4650 FileWriteLine($hFOpen, $i) Next FileClose($hFOpen) ;Now we read from that file into string... $iTimer = TimerInit() $hFOpen = FileOpen("File.txt", 0) $sReadLines = "" While 1 $sReadLines &= FileReadLine($hFOpen) & @CRLF If @error <> 0 Then ExitLoop WEnd FileClose($hFOpen) ;Show the time ConsoleWrite(StringFormat("%i lines in %.2f milliseconds ;)\n", 4650, TimerDiff($iTimer))) ;Show the string to the console ConsoleWrite($sReadLines) What is the limit for how much an array can hold? It might have to hold up 500,000 dimensions....You don't need that much dimentions 16 million elements (wich is the limit) can hold 16 million lines... ;Write to file *Around* 28,168 KB $hFOpen = FileOpen("File.txt", 2) For $i = 1 To 4650 FileWriteLine($hFOpen, $i) Next FileClose($hFOpen) ;Now we read from that file into Array... $aReadLines = StringSplit(StringStripCR(FileRead("File.txt")), @LF) For $i = 1 To $aReadLines[0] ;Show the current element to the console ConsoleWrite($aReadLines[$i] & @LF) Next Spoiler Using OS: Win 7 Professional, Using AutoIt Ver(s): 3.3.6.1 / 3.3.8.1 AutoIt Russian Community My Work... Spoiler Projects: ATT - Application Translate Tool {new}| BlockIt - Block files & folders {new}| SIP - Selected Image Preview {new}| SISCABMAN - SciTE Abbreviations Manager {new}| AutoIt Path Switcher | AutoIt Menu for Opera! | YouTube Download Center! | Desktop Icons Restorator | Math Tasks | KeyBoard & Mouse Cleaner | CaptureIt - Capture Images Utility | CheckFileSize ProgramUDFs: OnAutoItErrorRegister - Handle AutoIt critical errors {new}| AutoIt Syntax Highlight {new}| Opera Library! | Winamp Library | GetFolderToMenu | Custom_InputBox()! | _FileRun UDF | _CheckInput() UDF | _GUIInputSetOnlyNumbers() UDF | _FileGetValidName() UDF | _GUICtrlCreateRadioCBox UDF | _GuiCreateGrid() | _PathSplitByRegExp() | _GUICtrlListView_MoveItems - UDF | GUICtrlSetOnHover_UDF! | _ControlTab UDF! | _MouseSetOnEvent() UDF! | _ProcessListEx - UDF | GUICtrl_SetResizing - UDF! | Mod. for _IniString UDFs | _StringStripChars UDF | _ColorIsDarkShade UDF | _ColorConvertValue UDF | _GUICtrlTab_CoverBackground | CUI_App_UDF | _IncludeScripts UDF | _AutoIt3ExecuteCode | _DragList UDF | Mod. for _ListView_Progress | _ListView_SysLink | _GenerateRandomNumbers | _BlockInputEx | _IsPressedEx | OnAutoItExit Handler | _GUICtrlCreateTFLabel UDF | WinControlSetEvent UDF | Mod. for _DirGetSizeEx UDF Examples: ScreenSaver Demo - Matrix included | Gui Drag Without pause the script | _WinAttach()! | Turn Off/On Monitor | ComboBox Handler Example | Mod. for "Thinking Box" | Cool "About" Box | TasksBar Imitation Demo Like the Projects/UDFs/Examples? Please rate the topic (up-right corner of the post header: Rating ) * === My topics === * ================================================== ================================================== AutoIt is simple, subtle, elegant. © AutoIt Team
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now