Jump to content

Help! - My solution is way too slow.


This topic is 5661 days old. Please don't post here. Open a new topic instead.

Recommended Posts

I am designing a POS system and the technique that I am using to create the "order entry buttons" is way too slow. It is currently unusable. It takes several seconds to add one item to an order.

My computer is pretty ******* fast (faster than the POS computer that we have purchased) so I am really screwed unless I can come up with a faster implementation of this design.

Here is my current test file:

http://billbe.com/POS_SpeedTest4.zip

Link to comment
Share on other sites

Nice revision, although I must say I didn't notice much difference in speed on my G5.

Link to comment
Share on other sites

There are no speed issues on my outdated 1.2GHz machine. The biggest issue I have is the screen refresh takes a little while but I'm running at 1600x1200 resolution on a very old graphics card. Still adding an item to an order is less than 1 second.

Link to comment
Share on other sites

Bruce did probably recieve a slap on from the list mum, earlier on today, but he raised the point that some of the methods in the template not quite used the relational tools availiable... when ever long scripting occure is it a sign of inadequate structure, furtermore havn't the developer fully embraced the change in "tunneling" values over relations when going from fm6 to fm7/8.

There are indeed good ideas in the template we've seen, but some cleaning up could be required to understand the business model better ...I would say remains from earlier approaches ought to be removed before letting us seeing it.

I have meanwhile toyed a little with the idea and have made what I guess is the point with the template. Namely to have buttons showup and dissapeare according to the time of the servings as well as availiability say Sushi on mondays etc.

I have also given the listing a though, when you're taking orders are you supposingly pulling the database via VNC from a PDA while standing at your guests table. So you're clicking several times during the ordering perhaps on the same item/dish ...You better have them summed up right away. If one of your guest are changing his/her mind ...should you be able to unselect the chosen dish.

Anyway take a look at my template!

--sd

POS_speedTest5.zip

Link to comment
Share on other sites

I have meanwhile toyed a little with the idea and have made what I guess is the point with the template. Namely to have buttons showup and dissapeare according to the time of the servings as well as availiability say Sushi on mondays etc.

Thanks for your feedback Søren. I did some testing with your template. I added some of my button graphics and also expanded the number of buttons on the layout.

This is my modified version:

http://billbe.com/POS_speedTest5v2.zip

When I made the changes it unfortunately started to slow down the reaction time of the buttons. The speed in which line items could be added to the customer's order was greatly reduced. (see the layout with no button graphics, it is much faster)

My customer will be entering the transactions on a touch screen in a restaurant environment that moves pretty quick. 1 or 2 seconds to enter a single line item might seem fast but it is painfully slow compared to what my clients expect and what they have seen in other POS systems.

At this point in time it seems like FM8 can not handle the graphics load despite having a really fast computer. It gets too bogged down when trying to load all of the button graphics when they are in a portal...or repeating container field.

It appears that I am going to have to make some sacrifices in my planned user interface. I will incorporate the button graphics into the background graphic and abandon the idea of letting the user customize the look and feel of the interface.

It's too bad, I was able to get everything looking great in FM8. I had designed some really cool graphic themes that the user could change between almost instantly...unfortunately at the expense of performance.

I am not giving up just yet but I am not as optimistic as I was yesterday that the problem could be resolved with better scripting or more efficient coding. I think that it's just a graphics load problem.

Link to comment
Share on other sites

I had designed some really cool graphic themes that the user could change between almost instantly...unfortunately at the expense of performance.

Don't give up yet! We have now established the location of the bottleneck ...and when thinking of it - Yes it exactly what Matt Petrowski lectures in this video:

http://previews.filemakermagazine.com/videos/599/ThemeListLayout_full.mov

...well I can't rememeber where exactly it's said, but what you need to do is to build your buttons up with tiny tiny lines in various colours until you get the 3D'ish look.

So roll up the sleves and make vectorized graphics, instead of "pixelized" gradients!!

Or grap his theme library and use something in it close to what you're after ...I have once followed a cul de sac to see if thirdparty tools might give the desired transformation of pixi'ed into the filemaker native format ...it seems like nothing yet availiable??

Although that I within this month have been exposed to this tool:

http://www.quart-edv.de/plugins/pasteboard_en.html

...with a bit of luck could the XML be altered slightly be fore re-entered and produce you each of the coloured button simply by some typing???

I'm seriously considering this tool, and if it can perform this particular text typed alteration task would gladly like to know it!

Another thing to consider is packet watching if you peer to peer share the solution will you notice what each of the tiny alterations you make does for the rendering:

http://www.entropy.ch/software/macosx/welcome.html#tcpflow

...now you havn't said anything 'bout networking - but looking at this post suggests this, so benchmarking it this way would give a rough indication of the optimizations required.

Yet another thought is to build the interface in Runtime Revolution , and approach it with this tool:

http://www.24usoftware.com/SimpleTalk

--sd

Link to comment
Share on other sites

Anyway take a look at my template!

POS_speedTest5.zip

Søren, I have been tinkering with the sample file that you posted and there are some things in it that I do not understand.

Specifically, how would I modify your template to allow multiple entries of the same line item?

Example:

Tuna Sandwich 1

Pizza 1

Pizza 3

Iced Tea 4

Tuna Sandwich 1

I have been reading up on data tunneling and I have been trying to understand the basic concept. Is this the technique that you are using between the relationships (Ordering/ItemLines/AllItems)?

Link to comment
Share on other sites

Thanks very much for the link. This may save my interface design. From watching the video I learned that I can chop up my Photoshop buttons and stretch a single height pixel row to fill in the center of the button.

Here is a sample:

ButtonParts_FMP.gif

Link to comment
Share on other sites

Specifically, how would I modify your template to allow multiple entries of the same line item?

This way - look at the attachment!

The way it worked before this tweak, was to "summarize" each dish type!

Now I use timestamp to produce a temporary key to create records with, which is uisng both the timestamp in filtered form as well as the username to avoid networked users interfering with each others ordering. Please note that the key fields are changed into type text to make it include username with predicatable behaviour.

--sd

POS_speedTest6.zip

Link to comment
Share on other sites

This way - look at the attachment!

The way it worked before this tweak, was to "summarize" each dish type!

Now I use timestamp to produce a temporary key to create records with, which is uisng both the timestamp in filtered form as well as the username to avoid networked users interfering with each others ordering. Please note that the key fields are changed into type text to make it include username with predicatable behaviour.

--sd

I need to get some sleep... I have been awake for thirty hours and this stuff is no longer sinking in. :

I have been trying to figure out your design but you are doing some advanced things that I have never seen before. I see the timestamp calculation that you are creating (and I see it referenced in the Table Occurrence) but I do not really understand what it is doing...or where the timestamp value is going. I do not see it in any related fields that are being created in the ItemLine table.

Why do you need the unique "TimeStamp" field to create the related "ItemLine" record? Why wouldn't you just tell the script to create a new record and lookup the related value from the global "tempkey" field?

I assume that you are doing it the way that you are because it is more efficient and cleaner...perhaps after some sleep it will make more sense to me.

Thanks for all your help!

Link to comment
Share on other sites

Alright the userName would be enough for most issues, but if you solution looses connection to server or whatever during the scripting, will an orphaned record be created, that never ever meets the order ...what the user does is just clicking once more until it appears on the list, and no harm is done!

If you were using the just username will the order grapped be the first orphan and not the one you you're dealing with at present ...and worst case scenario is that it is thrown into another order.

If it was timestamp only, would simultanious entering from several waiters sometimes accidentally be simultaneous and both will grap the first one matching.

So all in all is this measure only to provide multiuser reliability if you access the solution wirelessly in black holes/drop out locations in your restaurant.

This is perhaps not the requirements yet, but what if say FM Mobile suddenly gets relational ...then would each waiter carrry his own PDA with a filemaker client instead of queing up at the touchscreen.

--sd

Link to comment
Share on other sites

This topic is 5661 days old. Please don't post here. Open a new topic instead.

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.