Giter Club home page Giter Club logo

Comments (13)

geseq avatar geseq commented on May 23, 2024

Too large an array. See related issue: #402

from tengo.

wlxwlxwlx avatar wlxwlxwlx commented on May 23, 2024

OK,thx

from tengo.

wlxwlxwlx avatar wlxwlxwlx commented on May 23, 2024

This may not be the same problem as that one,I changed my code to the following way of writing and still reported the same error:
for i in range(0, 9) { //fmt.Println(list[i]) }
I traced the source code and found that the problem lies in the MakeInstruction() of 'the instructions. go' file.
In line 28, n:=uint16 (o), the actual value of o is 66114, which exceeds the maximum value of uint16 (65535).
Is there any way I can correct it?

from tengo.

geseq avatar geseq commented on May 23, 2024

aha, can you try a larger uint and see if that helps?

from tengo.

wlxwlxwlx avatar wlxwlxwlx commented on May 23, 2024

I changed the 4 Jump instructions from uint16 to uint32, and changed the 2 bytes to 4 bytes. They are now working properly
image
image

And thank you again for your reply

from tengo.

wlxwlxwlx avatar wlxwlxwlx commented on May 23, 2024

However, the execution efficiency is slightly lower than before. I used the for loop to execute i++ 100 million times, which is about 200 milliseconds slower than before.

from tengo.

geseq avatar geseq commented on May 23, 2024

Do you have a measure of the relative slowdown?

from tengo.

wlxwlxwlx avatar wlxwlxwlx commented on May 23, 2024

func main() {
src := `
fmt:=import("fmt")
V_INTERNAL_F := func() {
index:=0;
for i:=0;i<100000000;i++{
index++
}

return index

}
V_RETURN := V_INTERNAL_F()

`
start := time.Now()
res, err := run(src)
if err != nil {
panic(err)
}
end := time.Since(start)
fmt.Println("cost:", end)
//println(res)
j_str, err := json.Marshal(res)
if err != nil {
panic(err)
}
fmt.Println(string(j_str))
}

from tengo.

wlxwlxwlx avatar wlxwlxwlx commented on May 23, 2024

I executed the above code 20 times using the pre modified code and the modified code, and took an average value for comparison

from tengo.

geseq avatar geseq commented on May 23, 2024

Sorry, to clarify, 200ms is a lot if your baseline was say 500ms, but negligible if it was say 10 seconds. What does the 200ms compare against?

from tengo.

wlxwlxwlx avatar wlxwlxwlx commented on May 23, 2024

The baseline is 7 to 8 seconds, and 200 milliseconds is the difference in code execution time before and after modification, shouldn't it be too much?

from tengo.

geseq avatar geseq commented on May 23, 2024

That’s a 2-3% difference. If it’s consistently repeatable we should try to improve it if possible but if not, the trade-off might be worth it

from tengo.

wlxwlxwlx avatar wlxwlxwlx commented on May 23, 2024

I submitted a pull request for this: #433

from tengo.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.